Merge pull request #687 from mattermost/PLT-93
PLT-93 Cleaning up client side configs
Этот коммит содержится в:
@@ -1,8 +1,6 @@
|
||||
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class EmailVerify extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
@@ -19,10 +17,10 @@ export default class EmailVerify extends React.Component {
|
||||
var body = '';
|
||||
var resend = '';
|
||||
if (this.props.isVerified === 'true') {
|
||||
title = config.SiteName + ' Email Verified';
|
||||
title = global.window.config.SiteName + ' Email Verified';
|
||||
body = <p>Your email has been verified! Click <a href={this.props.teamURL + '?email=' + this.props.userEmail}>here</a> to log in.</p>;
|
||||
} else {
|
||||
title = config.SiteName + ' Email Not Verified';
|
||||
title = global.window.config.SiteName + ' Email Not Verified';
|
||||
body = <p>Please verify your email address. Check your inbox for an email.</p>;
|
||||
resend = (
|
||||
<button
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var client = require('../utils/client.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class FindTeam extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -51,8 +50,8 @@ export default class FindTeam extends React.Component {
|
||||
if (this.state.sent) {
|
||||
return (
|
||||
<div>
|
||||
<h4>{'Find Your ' + utils.toTitleCase(strings.Team)}</h4>
|
||||
<p>{'An email was sent with links to any ' + strings.TeamPlural + ' to which you are a member.'}</p>
|
||||
<h4>{'Find Your team'}</h4>
|
||||
<p>{'An email was sent with links to any teams to which you are a member.'}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -61,7 +60,7 @@ export default class FindTeam extends React.Component {
|
||||
<div>
|
||||
<h4>Find Your Team</h4>
|
||||
<form onSubmit={this.handleSubmit}>
|
||||
<p>{'Get an email with links to any ' + strings.TeamPlural + ' to which you are a member.'}</p>
|
||||
<p>{'Get an email with links to any teams to which you are a member.'}</p>
|
||||
<div className='form-group'>
|
||||
<label className='control-label'>Email</label>
|
||||
<div className={emailErrorClass}>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// See License.txt for license information.
|
||||
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class GetLinkModal extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -76,9 +75,9 @@ export default class GetLinkModal extends React.Component {
|
||||
</div>
|
||||
<div className='modal-body'>
|
||||
<p>
|
||||
Send {strings.Team + 'mates'} the link below for them to sign-up to this {strings.Team} site.
|
||||
Send teammates the link below for them to sign-up to this team site.
|
||||
<br /><br />
|
||||
Be careful not to share this link publicly, since anyone with the link can join your {strings.Team}.
|
||||
Be careful not to share this link publicly, since anyone with the link can join your team.
|
||||
</p>
|
||||
<textarea
|
||||
className='form-control no-resize'
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
// See License.txt for license information.
|
||||
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var ConfigStore = require('../stores/config_store.jsx');
|
||||
var Client = require('../utils/client.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
var ConfirmModal = require('./confirm_modal.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class InviteMemberModal extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -23,7 +21,7 @@ export default class InviteMemberModal extends React.Component {
|
||||
emailErrors: {},
|
||||
firstNameErrors: {},
|
||||
lastNameErrors: {},
|
||||
emailEnabled: !ConfigStore.getSettingAsBoolean('ByPassEmail', false)
|
||||
emailEnabled: !global.window.config.ByPassEmail
|
||||
};
|
||||
}
|
||||
|
||||
@@ -79,23 +77,9 @@ export default class InviteMemberModal extends React.Component {
|
||||
emailErrors[index] = '';
|
||||
}
|
||||
|
||||
if (config.AllowInviteNames) {
|
||||
invite.firstName = React.findDOMNode(this.refs['first_name' + index]).value.trim();
|
||||
if (!invite.firstName && config.RequireInviteNames) {
|
||||
firstNameErrors[index] = 'This is a required field';
|
||||
valid = false;
|
||||
} else {
|
||||
firstNameErrors[index] = '';
|
||||
}
|
||||
invite.firstName = React.findDOMNode(this.refs['first_name' + index]).value.trim();
|
||||
|
||||
invite.lastName = React.findDOMNode(this.refs['last_name' + index]).value.trim();
|
||||
if (!invite.lastName && config.RequireInviteNames) {
|
||||
lastNameErrors[index] = 'This is a required field';
|
||||
valid = false;
|
||||
} else {
|
||||
lastNameErrors[index] = '';
|
||||
}
|
||||
}
|
||||
invite.lastName = React.findDOMNode(this.refs['last_name' + index]).value.trim();
|
||||
|
||||
invites.push(invite);
|
||||
}
|
||||
@@ -143,10 +127,8 @@ export default class InviteMemberModal extends React.Component {
|
||||
for (var i = 0; i < inviteIds.length; i++) {
|
||||
var index = inviteIds[i];
|
||||
React.findDOMNode(this.refs['email' + index]).value = '';
|
||||
if (config.AllowInviteNames) {
|
||||
React.findDOMNode(this.refs['first_name' + index]).value = '';
|
||||
React.findDOMNode(this.refs['last_name' + index]).value = '';
|
||||
}
|
||||
React.findDOMNode(this.refs['first_name' + index]).value = '';
|
||||
React.findDOMNode(this.refs['last_name' + index]).value = '';
|
||||
}
|
||||
|
||||
this.setState({
|
||||
@@ -210,44 +192,43 @@ export default class InviteMemberModal extends React.Component {
|
||||
}
|
||||
|
||||
var nameFields = null;
|
||||
if (config.AllowInviteNames) {
|
||||
var firstNameClass = 'form-group';
|
||||
if (firstNameError) {
|
||||
firstNameClass += ' has-error';
|
||||
}
|
||||
var lastNameClass = 'form-group';
|
||||
if (lastNameError) {
|
||||
lastNameClass += ' has-error';
|
||||
}
|
||||
nameFields = (<div className='row--invite'>
|
||||
<div className='col-sm-6'>
|
||||
<div className={firstNameClass}>
|
||||
<input
|
||||
type='text'
|
||||
className='form-control'
|
||||
ref={'first_name' + index}
|
||||
placeholder='First name'
|
||||
maxLength='64'
|
||||
disabled={!this.state.emailEnabled}
|
||||
/>
|
||||
{firstNameError}
|
||||
</div>
|
||||
</div>
|
||||
<div className='col-sm-6'>
|
||||
<div className={lastNameClass}>
|
||||
<input
|
||||
type='text'
|
||||
className='form-control'
|
||||
ref={'last_name' + index}
|
||||
placeholder='Last name'
|
||||
maxLength='64'
|
||||
disabled={!this.state.emailEnabled}
|
||||
/>
|
||||
{lastNameError}
|
||||
</div>
|
||||
</div>
|
||||
</div>);
|
||||
|
||||
var firstNameClass = 'form-group';
|
||||
if (firstNameError) {
|
||||
firstNameClass += ' has-error';
|
||||
}
|
||||
var lastNameClass = 'form-group';
|
||||
if (lastNameError) {
|
||||
lastNameClass += ' has-error';
|
||||
}
|
||||
nameFields = (<div className='row--invite'>
|
||||
<div className='col-sm-6'>
|
||||
<div className={firstNameClass}>
|
||||
<input
|
||||
type='text'
|
||||
className='form-control'
|
||||
ref={'first_name' + index}
|
||||
placeholder='First name'
|
||||
maxLength='64'
|
||||
disabled={!this.state.emailEnabled}
|
||||
/>
|
||||
{firstNameError}
|
||||
</div>
|
||||
</div>
|
||||
<div className='col-sm-6'>
|
||||
<div className={lastNameClass}>
|
||||
<input
|
||||
type='text'
|
||||
className='form-control'
|
||||
ref={'last_name' + index}
|
||||
placeholder='Last name'
|
||||
maxLength='64'
|
||||
disabled={!this.state.emailEnabled}
|
||||
/>
|
||||
{lastNameError}
|
||||
</div>
|
||||
</div>
|
||||
</div>);
|
||||
|
||||
inviteSections[index] = (
|
||||
<div key={'key' + index}>
|
||||
|
||||
@@ -6,7 +6,6 @@ const Client = require('../utils/client.jsx');
|
||||
const UserStore = require('../stores/user_store.jsx');
|
||||
const BrowserStore = require('../stores/browser_store.jsx');
|
||||
const Constants = require('../utils/constants.jsx');
|
||||
import {config, strings} from '../utils/config.js';
|
||||
|
||||
export default class Login extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -177,7 +176,7 @@ export default class Login extends React.Component {
|
||||
<div className='signup-team__container'>
|
||||
<h5 className='margin--less'>Sign in to:</h5>
|
||||
<h2 className='signup-team__name'>{teamDisplayName}</h2>
|
||||
<h2 className='signup-team__subdomain'>on {config.SiteName}</h2>
|
||||
<h2 className='signup-team__subdomain'>on {global.window.config.SiteName}</h2>
|
||||
<form onSubmit={this.handleSubmit}>
|
||||
<div className={'form-group' + errorClass}>
|
||||
{serverError}
|
||||
@@ -185,11 +184,11 @@ export default class Login extends React.Component {
|
||||
{loginMessage}
|
||||
{emailSignup}
|
||||
<div className='form-group margin--extra form-group--small'>
|
||||
<span><a href='/find_team'>{'Find other ' + strings.TeamPlural}</a></span>
|
||||
<span><a href='/find_team'>{'Find other teams'}</a></span>
|
||||
</div>
|
||||
{forgotPassword}
|
||||
<div className='margin--extra'>
|
||||
<span>{'Want to create your own ' + strings.Team + '? '}
|
||||
<span>{'Want to create your own team? '}
|
||||
<a
|
||||
href='/'
|
||||
className='signup-team-login'
|
||||
|
||||
@@ -7,7 +7,6 @@ var UserStore = require('../stores/user_store.jsx');
|
||||
var TeamStore = require('../stores/team_store.jsx');
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
function getStateFromStores() {
|
||||
return {teams: UserStore.getTeams(), currentTeam: TeamStore.getCurrent()};
|
||||
@@ -188,7 +187,7 @@ export default class NavbarDropdown extends React.Component {
|
||||
<li>
|
||||
<a
|
||||
target='_blank'
|
||||
href={config.HelpLink}
|
||||
href='/static/help/help.html'
|
||||
>
|
||||
Help
|
||||
</a>
|
||||
@@ -196,7 +195,7 @@ export default class NavbarDropdown extends React.Component {
|
||||
<li>
|
||||
<a
|
||||
target='_blank'
|
||||
href={config.ReportProblemLink}
|
||||
href='/static/help/report_problem.html'
|
||||
>
|
||||
Report a Problem
|
||||
</a>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// See License.txt for license information.
|
||||
|
||||
var client = require('../utils/client.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class PasswordResetForm extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -62,7 +61,7 @@ export default class PasswordResetForm extends React.Component {
|
||||
<div className='signup-team__container'>
|
||||
<h3>Password Reset</h3>
|
||||
<form onSubmit={this.handlePasswordReset}>
|
||||
<p>{'Enter a new password for your ' + this.props.teamDisplayName + ' ' + config.SiteName + ' account.'}</p>
|
||||
<p>{'Enter a new password for your ' + this.props.teamDisplayName + ' ' + global.window.config.SiteName + ' account.'}</p>
|
||||
<div className={formClass}>
|
||||
<input
|
||||
type='password'
|
||||
|
||||
@@ -15,8 +15,6 @@ var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class PostList extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
@@ -347,7 +345,7 @@ export default class PostList extends React.Component {
|
||||
|
||||
return (
|
||||
<div className='channel-intro'>
|
||||
<p className='channel-intro-text'>{'This is the start of your private message history with this ' + strings.Team + 'mate. Private messages and files shared here are not shown to people outside this area.'}</p>
|
||||
<p className='channel-intro-text'>{'This is the start of your private message history with this teammate. Private messages and files shared here are not shown to people outside this area.'}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -369,7 +367,7 @@ export default class PostList extends React.Component {
|
||||
<p className='channel-intro__content'>
|
||||
Welcome to {channel.display_name}!
|
||||
<br/><br/>
|
||||
This is the first channel {strings.Team}mates see when they
|
||||
This is the first channel teammates see when they
|
||||
<br/>
|
||||
sign up - use it for posting updates everyone needs to know.
|
||||
<br/><br/>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class SettingPicture extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
@@ -81,7 +79,7 @@ export default class SettingPicture extends React.Component {
|
||||
>Save</a>
|
||||
);
|
||||
}
|
||||
var helpText = 'Upload a profile picture in either JPG or PNG format, at least ' + config.ProfileWidth + 'px in width and ' + config.ProfileHeight + 'px height.';
|
||||
var helpText = 'Upload a profile picture in either JPG or PNG format, at least ' + global.window.config.ProfileWidth + 'px in width and ' + global.window.config.ProfileHeight + 'px height.';
|
||||
|
||||
var self = this;
|
||||
return (
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
var NavbarDropdown = require('./navbar_dropdown.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class SidebarHeader extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -59,7 +58,7 @@ export default class SidebarHeader extends React.Component {
|
||||
}
|
||||
|
||||
SidebarHeader.defaultProps = {
|
||||
teamDisplayName: config.SiteName,
|
||||
teamDisplayName: global.window.config.SiteName,
|
||||
teamType: ''
|
||||
};
|
||||
SidebarHeader.propTypes = {
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
var client = require('../utils/client.jsx');
|
||||
var utils = require('../utils/utils.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class SidebarRightMenu extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -75,8 +74,8 @@ export default class SidebarRightMenu extends React.Component {
|
||||
}
|
||||
|
||||
var siteName = '';
|
||||
if (config.SiteName != null) {
|
||||
siteName = config.SiteName;
|
||||
if (global.window.config.SiteName != null) {
|
||||
siteName = global.window.config.SiteName;
|
||||
}
|
||||
var teamDisplayName = siteName;
|
||||
if (this.props.teamDisplayName) {
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
var WelcomePage = require('./team_signup_welcome_page.jsx');
|
||||
var TeamDisplayNamePage = require('./team_signup_display_name_page.jsx');
|
||||
var TeamURLPage = require('./team_signup_url_page.jsx');
|
||||
var AllowedDomainsPage = require('./team_signup_allowed_domains_page.jsx');
|
||||
var SendInivtesPage = require('./team_signup_send_invites_page.jsx');
|
||||
var UsernamePage = require('./team_signup_username_page.jsx');
|
||||
var PasswordPage = require('./team_signup_password_page.jsx');
|
||||
@@ -70,15 +69,6 @@ export default class SignupTeamComplete extends React.Component {
|
||||
);
|
||||
}
|
||||
|
||||
if (this.state.wizard === 'allowed_domains') {
|
||||
return (
|
||||
<AllowedDomainsPage
|
||||
state={this.state}
|
||||
updateParent={this.updateParent}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (this.state.wizard === 'send_invites') {
|
||||
return (
|
||||
<SendInivtesPage
|
||||
|
||||
@@ -6,7 +6,6 @@ var client = require('../utils/client.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class SignupUserComplete extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -136,7 +135,7 @@ export default class SignupUserComplete extends React.Component {
|
||||
// set up the email entry and hide it if an email was provided
|
||||
var yourEmailIs = '';
|
||||
if (this.state.user.email) {
|
||||
yourEmailIs = <span>Your email address is {this.state.user.email}. You'll use this address to sign in to {config.SiteName}.</span>;
|
||||
yourEmailIs = <span>Your email address is {this.state.user.email}. You'll use this address to sign in to {global.window.config.SiteName}.</span>;
|
||||
}
|
||||
|
||||
var emailContainerStyle = 'margin--extra';
|
||||
@@ -237,11 +236,6 @@ export default class SignupUserComplete extends React.Component {
|
||||
);
|
||||
}
|
||||
|
||||
var termsDisclaimer = null;
|
||||
if (config.ShowTermsDuringSignup) {
|
||||
termsDisclaimer = <p>By creating an account and using Mattermost you are agreeing to our <a href={config.TermsLink}>Terms of Service</a>. If you do not agree, you cannot use this service.</p>;
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<form>
|
||||
@@ -251,12 +245,11 @@ export default class SignupUserComplete extends React.Component {
|
||||
/>
|
||||
<h5 className='margin--less'>Welcome to:</h5>
|
||||
<h2 className='signup-team__name'>{this.props.teamDisplayName}</h2>
|
||||
<h2 className='signup-team__subdomain'>on {config.SiteName}</h2>
|
||||
<h2 className='signup-team__subdomain'>on {global.window.config.SiteName}</h2>
|
||||
<h4 className='color--light'>Let's create your account</h4>
|
||||
{signupMessage}
|
||||
{emailSignup}
|
||||
{serverError}
|
||||
{termsDisclaimer}
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -6,7 +6,6 @@ const SettingItemMax = require('./setting_item_max.jsx');
|
||||
|
||||
const Client = require('../utils/client.jsx');
|
||||
const Utils = require('../utils/utils.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class GeneralTab extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -30,7 +29,7 @@ export default class GeneralTab extends React.Component {
|
||||
state.clientError = 'This field is required';
|
||||
valid = false;
|
||||
} else if (name === this.props.teamDisplayName) {
|
||||
state.clientError = 'Please choose a new name for your ' + strings.Team;
|
||||
state.clientError = 'Please choose a new name for your team';
|
||||
valid = false;
|
||||
} else {
|
||||
state.clientError = '';
|
||||
@@ -99,7 +98,7 @@ export default class GeneralTab extends React.Component {
|
||||
if (this.props.activeSection === 'name') {
|
||||
let inputs = [];
|
||||
|
||||
let teamNameLabel = Utils.toTitleCase(strings.Team) + ' Name';
|
||||
let teamNameLabel = 'Team Name';
|
||||
if (Utils.isMobile()) {
|
||||
teamNameLabel = '';
|
||||
}
|
||||
@@ -123,7 +122,7 @@ export default class GeneralTab extends React.Component {
|
||||
|
||||
nameSection = (
|
||||
<SettingItemMax
|
||||
title={`${Utils.toTitleCase(strings.Team)} Name`}
|
||||
title={`Team Name`}
|
||||
inputs={inputs}
|
||||
submit={this.handleNameSubmit}
|
||||
server_error={serverError}
|
||||
@@ -136,7 +135,7 @@ export default class GeneralTab extends React.Component {
|
||||
|
||||
nameSection = (
|
||||
<SettingItemMin
|
||||
title={`${Utils.toTitleCase(strings.Team)} Name`}
|
||||
title={`Team Name`}
|
||||
describe={describe}
|
||||
updateSection={this.onUpdateSection}
|
||||
/>
|
||||
|
||||
@@ -1,143 +0,0 @@
|
||||
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
var Client = require('../utils/client.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class TeamSignupAllowedDomainsPage extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.submitBack = this.submitBack.bind(this);
|
||||
this.submitNext = this.submitNext.bind(this);
|
||||
|
||||
this.state = {};
|
||||
}
|
||||
submitBack(e) {
|
||||
e.preventDefault();
|
||||
this.props.state.wizard = 'team_url';
|
||||
this.props.updateParent(this.props.state);
|
||||
}
|
||||
submitNext(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (React.findDOMNode(this.refs.open_network).checked) {
|
||||
this.props.state.wizard = 'send_invites';
|
||||
this.props.state.team.type = 'O';
|
||||
this.props.updateParent(this.props.state);
|
||||
return;
|
||||
}
|
||||
|
||||
if (React.findDOMNode(this.refs.allow).checked) {
|
||||
var name = React.findDOMNode(this.refs.name).value.trim();
|
||||
var domainRegex = /^\w+\.\w+$/;
|
||||
if (!name) {
|
||||
this.setState({nameError: 'This field is required'});
|
||||
return;
|
||||
}
|
||||
|
||||
if (!name.trim().match(domainRegex)) {
|
||||
this.setState({nameError: 'The domain doesn\'t appear valid'});
|
||||
return;
|
||||
}
|
||||
|
||||
this.props.state.wizard = 'send_invites';
|
||||
this.props.state.team.allowed_domains = name;
|
||||
this.props.state.team.type = 'I';
|
||||
this.props.updateParent(this.props.state);
|
||||
} else {
|
||||
this.props.state.wizard = 'send_invites';
|
||||
this.props.state.team.type = 'I';
|
||||
this.props.updateParent(this.props.state);
|
||||
}
|
||||
}
|
||||
render() {
|
||||
Client.track('signup', 'signup_team_04_allow_domains');
|
||||
|
||||
var nameError = null;
|
||||
var nameDivClass = 'form-group';
|
||||
if (this.state.nameError) {
|
||||
nameError = <label className='control-label'>{this.state.nameError}</label>;
|
||||
nameDivClass += ' has-error';
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<form>
|
||||
<img
|
||||
className='signup-team-logo'
|
||||
src='/static/images/logo.png'
|
||||
/>
|
||||
<h2>Email Domain</h2>
|
||||
<p>
|
||||
<div className='checkbox'>
|
||||
<label>
|
||||
<input
|
||||
type='checkbox'
|
||||
ref='allow'
|
||||
defaultChecked={true}
|
||||
/>
|
||||
{' Allow sign up and ' + strings.Team + ' discovery with a ' + strings.Company + ' email address.'}
|
||||
</label>
|
||||
</div>
|
||||
</p>
|
||||
<p>{'Check this box to allow your ' + strings.Team + ' members to sign up using their ' + strings.Company + ' email addresses if you share the same domain--otherwise, you need to invite everyone yourself.'}</p>
|
||||
<h4>{'Your ' + strings.Team + '\'s domain for emails'}</h4>
|
||||
<div className={nameDivClass}>
|
||||
<div className='row'>
|
||||
<div className='col-sm-9'>
|
||||
<div className='input-group'>
|
||||
<span className='input-group-addon'>@</span>
|
||||
<input
|
||||
type='text'
|
||||
ref='name'
|
||||
className='form-control'
|
||||
placeholder=''
|
||||
maxLength='128'
|
||||
defaultValue={this.props.state.team.allowed_domains}
|
||||
autoFocus={true}
|
||||
onFocus={this.handleFocus}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{nameError}
|
||||
</div>
|
||||
<p>To allow signups from multiple domains, separate each with a comma.</p>
|
||||
<p>
|
||||
<div className='checkbox'>
|
||||
<label>
|
||||
<input
|
||||
type='checkbox'
|
||||
ref='open_network'
|
||||
defaultChecked={this.props.state.team.type === 'O'}
|
||||
/> Allow anyone to signup to this domain without an invitation.</label>
|
||||
</div>
|
||||
</p>
|
||||
<button
|
||||
type='button'
|
||||
className='btn btn-default'
|
||||
onClick={this.submitBack}
|
||||
>
|
||||
<i className='glyphicon glyphicon-chevron-left'></i> Back
|
||||
</button>
|
||||
<button
|
||||
type='submit'
|
||||
className='btn-primary btn'
|
||||
onClick={this.submitNext}
|
||||
>
|
||||
Next<i className='glyphicon glyphicon-chevron-right'></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
TeamSignupAllowedDomainsPage.defaultProps = {
|
||||
state: {}
|
||||
};
|
||||
TeamSignupAllowedDomainsPage.propTypes = {
|
||||
state: React.PropTypes.object,
|
||||
updateParent: React.PropTypes.func
|
||||
};
|
||||
@@ -2,7 +2,6 @@
|
||||
// See License.txt for license information.
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class ChooseAuthPage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -24,7 +23,7 @@ export default class ChooseAuthPage extends React.Component {
|
||||
}
|
||||
>
|
||||
<span className='icon' />
|
||||
<span>Create new {strings.Team} with GitLab Account</span>
|
||||
<span>Create new team with GitLab Account</span>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
@@ -42,7 +41,7 @@ export default class ChooseAuthPage extends React.Component {
|
||||
}
|
||||
>
|
||||
<span className='fa fa-envelope' />
|
||||
<span>Create new {strings.Team} with email address</span>
|
||||
<span>Create new team with email address</span>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
@@ -55,7 +54,7 @@ export default class ChooseAuthPage extends React.Component {
|
||||
<div>
|
||||
{buttons}
|
||||
<div className='form-group margin--extra-2x'>
|
||||
<span><a href='/find_team'>{'Find my ' + strings.Team}</a></span>
|
||||
<span><a href='/find_team'>{'Find my team'}</a></span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var client = require('../utils/client.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class TeamSignupDisplayNamePage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -54,7 +53,7 @@ export default class TeamSignupDisplayNamePage extends React.Component {
|
||||
className='signup-team-logo'
|
||||
src='/static/images/logo.png'
|
||||
/>
|
||||
<h2>{utils.toTitleCase(strings.Team) + ' Name'}</h2>
|
||||
<h2>{'Team Name'}</h2>
|
||||
<div className={nameDivClass}>
|
||||
<div className='row'>
|
||||
<div className='col-sm-9'>
|
||||
@@ -73,7 +72,7 @@ export default class TeamSignupDisplayNamePage extends React.Component {
|
||||
{nameError}
|
||||
</div>
|
||||
<div>
|
||||
{'Name your ' + strings.Team + ' in any language. Your ' + strings.Team + ' name shows in menus and headings.'}
|
||||
{'Name your team in any language. Your team name shows in menus and headings.'}
|
||||
</div>
|
||||
<button
|
||||
type='submit'
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
var Client = require('../utils/client.jsx');
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
import {strings, config} from '../utils/config.js';
|
||||
|
||||
export default class TeamSignupPasswordPage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -123,13 +122,13 @@ export default class TeamSignupPasswordPage extends React.Component {
|
||||
type='submit'
|
||||
className='btn btn-primary margin--extra'
|
||||
id='finish-button'
|
||||
data-loading-text={'<span class=\'glyphicon glyphicon-refresh glyphicon-refresh-animate\'></span> Creating ' + strings.Team + '...'}
|
||||
data-loading-text={'<span class=\'glyphicon glyphicon-refresh glyphicon-refresh-animate\'></span> Creating team...'}
|
||||
onClick={this.submitNext}
|
||||
>
|
||||
Finish
|
||||
</button>
|
||||
</div>
|
||||
<p>By proceeding to create your account and use {config.SiteName}, you agree to our <a href={config.TermsLink}>Terms of Service</a> and <a href={config.PrivacyLink}>Privacy Policy</a>. If you do not agree, you cannot use {config.SiteName}.</p>
|
||||
<p>By proceeding to create your account and use {global.window.config.SiteName}, you agree to our <a href='/static/help/terms.html'>Terms of Service</a> and <a href='/static/help/privacy.html'>Privacy Policy</a>. If you do not agree, you cannot use {global.window.config.SiteName}.</p>
|
||||
<div className='margin--extra'>
|
||||
<a
|
||||
href='#'
|
||||
|
||||
@@ -2,10 +2,7 @@
|
||||
// See License.txt for license information.
|
||||
|
||||
var EmailItem = require('./team_signup_email_item.jsx');
|
||||
var Utils = require('../utils/utils.jsx');
|
||||
var ConfigStore = require('../stores/config_store.jsx');
|
||||
var Client = require('../utils/client.jsx');
|
||||
import {strings, config} from '../utils/config.js';
|
||||
|
||||
export default class TeamSignupSendInvitesPage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -16,7 +13,7 @@ export default class TeamSignupSendInvitesPage extends React.Component {
|
||||
this.submitSkip = this.submitSkip.bind(this);
|
||||
this.keySubmit = this.keySubmit.bind(this);
|
||||
this.state = {
|
||||
emailEnabled: !ConfigStore.getSettingAsBoolean('ByPassEmail', false)
|
||||
emailEnabled: !global.window.config.ByPassEmail
|
||||
};
|
||||
|
||||
if (!this.state.emailEnabled) {
|
||||
@@ -26,12 +23,7 @@ export default class TeamSignupSendInvitesPage extends React.Component {
|
||||
}
|
||||
submitBack(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (config.AllowSignupDomainsWizard) {
|
||||
this.props.state.wizard = 'allowed_domains';
|
||||
} else {
|
||||
this.props.state.wizard = 'team_url';
|
||||
}
|
||||
this.props.state.wizard = 'team_url';
|
||||
|
||||
this.props.updateParent(this.props.state);
|
||||
}
|
||||
@@ -138,7 +130,7 @@ export default class TeamSignupSendInvitesPage extends React.Component {
|
||||
|
||||
bottomContent = (
|
||||
<p className='color--light'>
|
||||
{'if you prefer, you can invite ' + strings.Team + ' members later'}
|
||||
{'if you prefer, you can invite team members later'}
|
||||
<br />
|
||||
{' and '}
|
||||
<a
|
||||
@@ -153,7 +145,7 @@ export default class TeamSignupSendInvitesPage extends React.Component {
|
||||
} else {
|
||||
content = (
|
||||
<div className='form-group color--light'>
|
||||
{'Email is currently disabled for your ' + strings.Team + ', and emails cannot be sent. Contact your system administrator to enable email and email invitations.'}
|
||||
{'Email is currently disabled for your team, and emails cannot be sent. Contact your system administrator to enable email and email invitations.'}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -165,7 +157,7 @@ export default class TeamSignupSendInvitesPage extends React.Component {
|
||||
className='signup-team-logo'
|
||||
src='/static/images/logo.png'
|
||||
/>
|
||||
<h2>{'Invite ' + Utils.toTitleCase(strings.Team) + ' Members'}</h2>
|
||||
<h2>{'Invite Team Members'}</h2>
|
||||
{content}
|
||||
<div className='form-group'>
|
||||
<button
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
const Utils = require('../utils/utils.jsx');
|
||||
const Client = require('../utils/client.jsx');
|
||||
const Constants = require('../utils/constants.jsx');
|
||||
import {strings, config} from '../utils/config.js';
|
||||
|
||||
export default class TeamSignupUrlPage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -51,12 +50,8 @@ export default class TeamSignupUrlPage extends React.Component {
|
||||
Client.findTeamByName(name,
|
||||
function success(data) {
|
||||
if (!data) {
|
||||
if (config.AllowSignupDomainsWizard) {
|
||||
this.props.state.wizard = 'allowed_domains';
|
||||
} else {
|
||||
this.props.state.wizard = 'send_invites';
|
||||
this.props.state.team.type = 'O';
|
||||
}
|
||||
this.props.state.wizard = 'send_invites';
|
||||
this.props.state.team.type = 'O';
|
||||
|
||||
this.props.state.team.name = name;
|
||||
this.props.updateParent(this.props.state);
|
||||
@@ -97,7 +92,7 @@ export default class TeamSignupUrlPage extends React.Component {
|
||||
className='signup-team-logo'
|
||||
src='/static/images/logo.png'
|
||||
/>
|
||||
<h2>{`${Utils.toTitleCase(strings.Team)} URL`}</h2>
|
||||
<h2>{`Team URL`}</h2>
|
||||
<div className={nameDivClass}>
|
||||
<div className='row'>
|
||||
<div className='col-sm-11'>
|
||||
@@ -124,7 +119,7 @@ export default class TeamSignupUrlPage extends React.Component {
|
||||
</div>
|
||||
{nameError}
|
||||
</div>
|
||||
<p>{`Choose the web address of your new ${strings.Team}:`}</p>
|
||||
<p>{`Choose the web address of your new team:`}</p>
|
||||
<ul className='color--light'>
|
||||
<li>Short and memorable is best</li>
|
||||
<li>Use lowercase letters, numbers and dashes</li>
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
var Utils = require('../utils/utils.jsx');
|
||||
var Client = require('../utils/client.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class TeamSignupUsernamePage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -55,7 +54,7 @@ export default class TeamSignupUsernamePage extends React.Component {
|
||||
src='/static/images/logo.png'
|
||||
/>
|
||||
<h2 className='margin--less'>Your username</h2>
|
||||
<h5 className='color--light'>{'Select a memorable username that makes it easy for ' + strings.Team + 'mates to identify you:'}</h5>
|
||||
<h5 className='color--light'>{'Select a memorable username that makes it easy for teammates to identify you:'}</h5>
|
||||
<div className='inner__content margin--extra'>
|
||||
<div className={nameDivClass}>
|
||||
<div className='row'>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
var Utils = require('../utils/utils.jsx');
|
||||
var Client = require('../utils/client.jsx');
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class TeamSignupWelcomePage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -112,7 +111,7 @@ export default class TeamSignupWelcomePage extends React.Component {
|
||||
src='/static/images/logo.png'
|
||||
/>
|
||||
<h3 className='sub-heading'>Welcome to:</h3>
|
||||
<h1 className='margin--top-none'>{config.SiteName}</h1>
|
||||
<h1 className='margin--top-none'>{global.window.config.SiteName}</h1>
|
||||
</p>
|
||||
<p className='margin--less'>Let's set up your new team</p>
|
||||
<p>
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
const Utils = require('../utils/utils.jsx');
|
||||
const Client = require('../utils/client.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class EmailSignUpPage extends React.Component {
|
||||
constructor() {
|
||||
@@ -70,7 +69,7 @@ export default class EmailSignUpPage extends React.Component {
|
||||
</button>
|
||||
</div>
|
||||
<div className='form-group margin--extra-2x'>
|
||||
<span><a href='/find_team'>{`Find my ${strings.Team}`}</a></span>
|
||||
<span><a href='/find_team'>{`Find my team`}</a></span>
|
||||
</div>
|
||||
</form>
|
||||
);
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var client = require('../utils/client.jsx');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
import {strings} from '../utils/config.js';
|
||||
|
||||
export default class SSOSignUpPage extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -84,7 +83,7 @@ export default class SSOSignUpPage extends React.Component {
|
||||
disabled={disabled}
|
||||
>
|
||||
<span className='icon'/>
|
||||
<span>Create {strings.Team} with GitLab Account</span>
|
||||
<span>Create team with GitLab Account</span>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
@@ -111,7 +110,7 @@ export default class SSOSignUpPage extends React.Component {
|
||||
{serverError}
|
||||
</div>
|
||||
<div className='form-group margin--extra-2x'>
|
||||
<span><a href='/find_team'>{'Find my ' + strings.Team}</a></span>
|
||||
<span><a href='/find_team'>{'Find my team'}</a></span>
|
||||
</div>
|
||||
</form>
|
||||
);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
var Utils = require('../utils/utils.jsx');
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
var id = 0;
|
||||
|
||||
@@ -58,7 +57,7 @@ export default class UserProfile extends React.Component {
|
||||
}
|
||||
|
||||
var dataContent = '<img class="user-popover__image" src="/api/v1/users/' + this.state.profile.id + '/image?time=' + this.state.profile.update_at + '" height="128" width="128" />';
|
||||
if (!config.ShowEmail) {
|
||||
if (!global.window.config.ShowEmailAddress) {
|
||||
dataContent += '<div class="text-nowrap">Email not shared</div>';
|
||||
} else {
|
||||
dataContent += '<div data-toggle="tooltip" title="' + this.state.profile.email + '"><a href="mailto:' + this.state.profile.email + '" class="text-nowrap text-lowercase user-popover__email">' + this.state.profile.email + '</a></div>';
|
||||
|
||||
@@ -6,7 +6,8 @@ var SettingItemMin = require('./setting_item_min.jsx');
|
||||
var SettingItemMax = require('./setting_item_max.jsx');
|
||||
var Client = require('../utils/client.jsx');
|
||||
var Utils = require('../utils/utils.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
var ThemeColors = ['#2389d7', '#008a17', '#dc4fad', '#ac193d', '#0072c6', '#d24726', '#ff8f32', '#82ba00', '#03b3b2', '#008299', '#4617b4', '#8c0095', '#004b8b', '#004b8b', '#570000', '#380000', '#585858', '#000000'];
|
||||
|
||||
export default class UserSettingsAppearance extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -21,8 +22,8 @@ export default class UserSettingsAppearance extends React.Component {
|
||||
getStateFromStores() {
|
||||
var user = UserStore.getCurrentUser();
|
||||
var theme = '#2389d7';
|
||||
if (config.ThemeColors != null) {
|
||||
theme = config.ThemeColors[0];
|
||||
if (ThemeColors != null) {
|
||||
theme = ThemeColors[0];
|
||||
}
|
||||
if (user.props && user.props.theme) {
|
||||
theme = user.props.theme;
|
||||
@@ -83,18 +84,18 @@ export default class UserSettingsAppearance extends React.Component {
|
||||
var themeSection;
|
||||
var self = this;
|
||||
|
||||
if (config.ThemeColors != null) {
|
||||
if (ThemeColors != null) {
|
||||
if (this.props.activeSection === 'theme') {
|
||||
var themeButtons = [];
|
||||
|
||||
for (var i = 0; i < config.ThemeColors.length; i++) {
|
||||
for (var i = 0; i < ThemeColors.length; i++) {
|
||||
themeButtons.push(
|
||||
<button
|
||||
key={config.ThemeColors[i] + 'key' + i}
|
||||
ref={config.ThemeColors[i]}
|
||||
key={ThemeColors[i] + 'key' + i}
|
||||
ref={ThemeColors[i]}
|
||||
type='button'
|
||||
className='btn btn-lg color-btn'
|
||||
style={{backgroundColor: config.ThemeColors[i]}}
|
||||
style={{backgroundColor: ThemeColors[i]}}
|
||||
onClick={this.updateTheme}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// See License.txt for license information.
|
||||
|
||||
var UserStore = require('../stores/user_store.jsx');
|
||||
var ConfigStore = require('../stores/config_store.jsx');
|
||||
var SettingItemMin = require('./setting_item_min.jsx');
|
||||
var SettingItemMax = require('./setting_item_max.jsx');
|
||||
var SettingPicture = require('./setting_picture.jsx');
|
||||
@@ -209,7 +208,7 @@ export default class UserSettingsGeneralTab extends React.Component {
|
||||
}
|
||||
setupInitialState(props) {
|
||||
var user = props.user;
|
||||
var emailEnabled = !ConfigStore.getSettingAsBoolean('ByPassEmail', false);
|
||||
var emailEnabled = !global.window.config.ByPassEmail;
|
||||
return {username: user.username, firstName: user.first_name, lastName: user.last_name, nickname: user.nickname,
|
||||
email: user.email, picture: null, loadingPicture: false, emailEnabled: emailEnabled};
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ var client = require('../utils/client.jsx');
|
||||
var AsyncClient = require('../utils/async_client.jsx');
|
||||
var utils = require('../utils/utils.jsx');
|
||||
var assign = require('object-assign');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
function getNotificationsStateFromStores() {
|
||||
var user = UserStore.getCurrentUser();
|
||||
@@ -415,7 +414,7 @@ export default class NotificationsTab extends React.Component {
|
||||
</label>
|
||||
<br/>
|
||||
</div>
|
||||
<div><br/>{'Email notifications are sent for mentions and private messages after you have been away from ' + config.SiteName + ' for 5 minutes.'}</div>
|
||||
<div><br/>{'Email notifications are sent for mentions and private messages after you have been away from ' + global.window.config.SiteName + ' for 5 minutes.'}</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
var Client = require('../utils/client.jsx');
|
||||
var Utils = require('../utils/utils.jsx');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export default class ViewImageModal extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -301,7 +300,7 @@ export default class ViewImageModal extends React.Component {
|
||||
}
|
||||
|
||||
var publicLink = '';
|
||||
if (config.AllowPublicLink) {
|
||||
if (global.window.config.AllowPublicLink) {
|
||||
publicLink = (
|
||||
<div>
|
||||
<a
|
||||
|
||||
@@ -34,23 +34,19 @@ var ActivityLogModal = require('../components/activity_log_modal.jsx');
|
||||
var RemovedFromChannelModal = require('../components/removed_from_channel_modal.jsx');
|
||||
var FileUploadOverlay = require('../components/file_upload_overlay.jsx');
|
||||
|
||||
var AsyncClient = require('../utils/async_client.jsx');
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
function setupChannelPage(teamName, teamType, teamId, channelName, channelId) {
|
||||
AsyncClient.getConfig();
|
||||
|
||||
function setupChannelPage(props) {
|
||||
AppDispatcher.handleViewAction({
|
||||
type: ActionTypes.CLICK_CHANNEL,
|
||||
name: channelName,
|
||||
id: channelId
|
||||
name: props.ChannelName,
|
||||
id: props.ChannelId
|
||||
});
|
||||
|
||||
AppDispatcher.handleViewAction({
|
||||
type: ActionTypes.CLICK_TEAM,
|
||||
id: teamId
|
||||
id: props.TeamId
|
||||
});
|
||||
|
||||
// ChannelLoader must be rendered first
|
||||
@@ -65,14 +61,14 @@ function setupChannelPage(teamName, teamType, teamId, channelName, channelId) {
|
||||
);
|
||||
|
||||
React.render(
|
||||
<Navbar teamDisplayName={teamName} />,
|
||||
<Navbar teamDisplayName={props.TeamDisplayName} />,
|
||||
document.getElementById('navbar')
|
||||
);
|
||||
|
||||
React.render(
|
||||
<Sidebar
|
||||
teamDisplayName={teamName}
|
||||
teamType={teamType}
|
||||
teamDisplayName={props.TeamDisplayName}
|
||||
teamType={props.TeamType}
|
||||
/>,
|
||||
document.getElementById('sidebar-left')
|
||||
);
|
||||
@@ -88,17 +84,17 @@ function setupChannelPage(teamName, teamType, teamId, channelName, channelId) {
|
||||
);
|
||||
|
||||
React.render(
|
||||
<TeamSettingsModal teamDisplayName={teamName} />,
|
||||
<TeamSettingsModal teamDisplayName={props.TeamDisplayName} />,
|
||||
document.getElementById('team_settings_modal')
|
||||
);
|
||||
|
||||
React.render(
|
||||
<TeamMembersModal teamDisplayName={teamName} />,
|
||||
<TeamMembersModal teamDisplayName={props.TeamDisplayName} />,
|
||||
document.getElementById('team_members_modal')
|
||||
);
|
||||
|
||||
React.render(
|
||||
<MemberInviteModal teamType={teamType} />,
|
||||
<MemberInviteModal teamType={props.TeamType} />,
|
||||
document.getElementById('invite_member_modal')
|
||||
);
|
||||
|
||||
@@ -184,8 +180,8 @@ function setupChannelPage(teamName, teamType, teamId, channelName, channelId) {
|
||||
|
||||
React.render(
|
||||
<SidebarRightMenu
|
||||
teamDisplayName={teamName}
|
||||
teamType={teamType}
|
||||
teamDisplayName={props.TeamDisplayName}
|
||||
teamType={props.TeamType}
|
||||
/>,
|
||||
document.getElementById('sidebar-menu')
|
||||
);
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
var ChannelStore = require('../stores/channel_store.jsx');
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
|
||||
function setupHomePage(teamURL) {
|
||||
function setupHomePage(props) {
|
||||
var last = ChannelStore.getLastVisitedName();
|
||||
if (last == null || last.length === 0) {
|
||||
window.location = teamURL + '/channels/' + Constants.DEFAULT_CHANNEL;
|
||||
window.location = props.TeamURL + '/channels/' + Constants.DEFAULT_CHANNEL;
|
||||
} else {
|
||||
window.location = teamURL + '/channels/' + last;
|
||||
window.location = props.TeamURL + '/channels/' + last;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
|
||||
var Login = require('../components/login.jsx');
|
||||
|
||||
function setupLoginPage(teamDisplayName, teamName, authServices) {
|
||||
function setupLoginPage(props) {
|
||||
React.render(
|
||||
<Login
|
||||
teamDisplayName={teamDisplayName}
|
||||
teamName={teamName}
|
||||
authServices={authServices}
|
||||
teamDisplayName={props.TeamDisplayName}
|
||||
teamName={props.TeamName}
|
||||
authServices={props.AuthServices}
|
||||
/>,
|
||||
document.getElementById('login')
|
||||
);
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
|
||||
var PasswordReset = require('../components/password_reset.jsx');
|
||||
|
||||
function setupPasswordResetPage(isReset, teamDisplayName, teamName, hash, data) {
|
||||
function setupPasswordResetPage(props) {
|
||||
React.render(
|
||||
<PasswordReset
|
||||
isReset={isReset}
|
||||
teamDisplayName={teamDisplayName}
|
||||
teamName={teamName}
|
||||
hash={hash}
|
||||
data={data}
|
||||
isReset={props.IsReset}
|
||||
teamDisplayName={props.TeamDisplayName}
|
||||
teamName={props.TeamName}
|
||||
hash={props.Hash}
|
||||
data={props.Data}
|
||||
/>,
|
||||
document.getElementById('reset')
|
||||
);
|
||||
|
||||
@@ -3,12 +3,8 @@
|
||||
|
||||
var SignupTeam = require('../components/signup_team.jsx');
|
||||
|
||||
var AsyncClient = require('../utils/async_client.jsx');
|
||||
|
||||
function setupSignupTeamPage(authServices) {
|
||||
AsyncClient.getConfig();
|
||||
|
||||
var services = JSON.parse(authServices);
|
||||
function setupSignupTeamPage(props) {
|
||||
var services = JSON.parse(props.AuthServices);
|
||||
|
||||
React.render(
|
||||
<SignupTeam services={services} />,
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
|
||||
var SignupTeamComplete = require('../components/signup_team_complete.jsx');
|
||||
|
||||
function setupSignupTeamCompletePage(email, data, hash) {
|
||||
function setupSignupTeamCompletePage(props) {
|
||||
React.render(
|
||||
<SignupTeamComplete
|
||||
email={email}
|
||||
hash={hash}
|
||||
data={data}
|
||||
email={props.Email}
|
||||
hash={props.Hash}
|
||||
data={props.Data}
|
||||
/>,
|
||||
document.getElementById('signup-team-complete')
|
||||
);
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
|
||||
var SignupUserComplete = require('../components/signup_user_complete.jsx');
|
||||
|
||||
function setupSignupUserCompletePage(email, name, uiName, id, data, hash, authServices) {
|
||||
function setupSignupUserCompletePage(props) {
|
||||
React.render(
|
||||
<SignupUserComplete
|
||||
teamId={id}
|
||||
teamName={name}
|
||||
teamDisplayName={uiName}
|
||||
email={email}
|
||||
hash={hash}
|
||||
data={data}
|
||||
authServices={authServices}
|
||||
teamId={props.TeamId}
|
||||
teamName={props.TeamName}
|
||||
teamDisplayName={props.TeamDisplayName}
|
||||
email={props.Email}
|
||||
hash={props.Hash}
|
||||
data={props.Data}
|
||||
authServices={props.AuthServices}
|
||||
/>,
|
||||
document.getElementById('signup-user-complete')
|
||||
);
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
|
||||
var EmailVerify = require('../components/email_verify.jsx');
|
||||
|
||||
global.window.setupVerifyPage = function setupVerifyPage(isVerified, teamURL, userEmail) {
|
||||
global.window.setupVerifyPage = function setupVerifyPage(props) {
|
||||
React.render(
|
||||
<EmailVerify
|
||||
isVerified={isVerified}
|
||||
teamURL={teamURL}
|
||||
userEmail={userEmail}
|
||||
isVerified={props.IsVerified}
|
||||
teamURL={props.TeamURL}
|
||||
userEmail={props.UserEmail}
|
||||
/>,
|
||||
document.getElementById('verify')
|
||||
);
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
|
||||
var BrowserStore = require('../stores/browser_store.jsx');
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
var CHANGE_EVENT = 'change';
|
||||
|
||||
class ConfigStoreClass extends EventEmitter {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.emitChange = this.emitChange.bind(this);
|
||||
this.addChangeListener = this.addChangeListener.bind(this);
|
||||
this.removeChangeListener = this.removeChangeListener.bind(this);
|
||||
this.getSetting = this.getSetting.bind(this);
|
||||
this.getSettingAsBoolean = this.getSettingAsBoolean.bind(this);
|
||||
this.updateStoredSettings = this.updateStoredSettings.bind(this);
|
||||
}
|
||||
emitChange() {
|
||||
this.emit(CHANGE_EVENT);
|
||||
}
|
||||
addChangeListener(callback) {
|
||||
this.on(CHANGE_EVENT, callback);
|
||||
}
|
||||
removeChangeListener(callback) {
|
||||
this.removeListener(CHANGE_EVENT, callback);
|
||||
}
|
||||
getSetting(key, defaultValue) {
|
||||
return BrowserStore.getItem('config_' + key, defaultValue);
|
||||
}
|
||||
getSettingAsBoolean(key, defaultValue) {
|
||||
var value = this.getSetting(key, defaultValue);
|
||||
|
||||
if (typeof value !== 'string') {
|
||||
return Boolean(value);
|
||||
}
|
||||
|
||||
return value === 'true';
|
||||
}
|
||||
updateStoredSettings(settings) {
|
||||
for (let key in settings) {
|
||||
if (settings.hasOwnProperty(key)) {
|
||||
BrowserStore.setItem('config_' + key, settings[key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var ConfigStore = new ConfigStoreClass();
|
||||
|
||||
ConfigStore.dispatchToken = AppDispatcher.register(function registry(payload) {
|
||||
var action = payload.action;
|
||||
|
||||
switch (action.type) {
|
||||
case ActionTypes.RECIEVED_CONFIG:
|
||||
ConfigStore.updateStoredSettings(action.settings);
|
||||
ConfigStore.emitChange();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
});
|
||||
|
||||
export default ConfigStore;
|
||||
@@ -582,28 +582,4 @@ export function getMyTeam() {
|
||||
dispatchError(err, 'getMyTeam');
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export function getConfig() {
|
||||
if (isCallInProgress('getConfig')) {
|
||||
return;
|
||||
}
|
||||
|
||||
callTracker.getConfig = utils.getTimestamp();
|
||||
client.getConfig(
|
||||
function getConfigSuccess(data, textStatus, xhr) {
|
||||
callTracker.getConfig = 0;
|
||||
|
||||
if (data && xhr.status !== 304) {
|
||||
AppDispatcher.handleServerAction({
|
||||
type: ActionTypes.RECIEVED_CONFIG,
|
||||
settings: data
|
||||
});
|
||||
}
|
||||
},
|
||||
function getConfigFailure(err) {
|
||||
callTracker.getConfig = 0;
|
||||
dispatchError(err, 'getConfig');
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -14,8 +14,6 @@ export function trackPage() {
|
||||
}
|
||||
|
||||
function handleError(methodName, xhr, status, err) {
|
||||
var LTracker = global.window.LTracker || [];
|
||||
|
||||
var e = null;
|
||||
try {
|
||||
e = JSON.parse(xhr.responseText);
|
||||
@@ -39,7 +37,6 @@ function handleError(methodName, xhr, status, err) {
|
||||
|
||||
console.error(msg); //eslint-disable-line no-console
|
||||
console.error(e); //eslint-disable-line no-console
|
||||
LTracker.push(msg);
|
||||
|
||||
track('api', 'api_weberror', methodName, 'message', msg);
|
||||
|
||||
@@ -990,17 +987,3 @@ export function updateValetFeature(data, success, error) {
|
||||
|
||||
track('api', 'api_teams_update_valet_feature');
|
||||
}
|
||||
|
||||
export function getConfig(success, error) {
|
||||
$.ajax({
|
||||
url: '/api/v1/config/get_all',
|
||||
dataType: 'json',
|
||||
type: 'GET',
|
||||
ifModified: true,
|
||||
success: success,
|
||||
error: function onError(xhr, status, err) {
|
||||
var e = handleError('getConfig', xhr, status, err);
|
||||
error(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
export var config = {
|
||||
|
||||
// Loggly configs
|
||||
LogglyWriteKey: '',
|
||||
LogglyConsoleErrors: true,
|
||||
|
||||
// Segment configs
|
||||
SegmentWriteKey: '',
|
||||
|
||||
// Feature switches
|
||||
AllowPublicLink: true,
|
||||
AllowInviteNames: true,
|
||||
RequireInviteNames: false,
|
||||
AllowSignupDomainsWizard: false,
|
||||
|
||||
// Google Developer Key (for Youtube API links)
|
||||
// Leave blank to disable
|
||||
GoogleDeveloperKey: '',
|
||||
|
||||
// Privacy switches
|
||||
ShowEmail: true,
|
||||
|
||||
// Links
|
||||
TermsLink: '/static/help/configure_links.html',
|
||||
PrivacyLink: '/static/help/configure_links.html',
|
||||
AboutLink: '/static/help/configure_links.html',
|
||||
HelpLink: '/static/help/configure_links.html',
|
||||
ReportProblemLink: '/static/help/configure_links.html',
|
||||
HomeLink: '',
|
||||
|
||||
// Toggle whether or not users are shown a message about agreeing to the Terms of Service during the signup process
|
||||
ShowTermsDuringSignup: false,
|
||||
|
||||
ThemeColors: ['#2389d7', '#008a17', '#dc4fad', '#ac193d', '#0072c6', '#d24726', '#ff8f32', '#82ba00', '#03b3b2', '#008299', '#4617b4', '#8c0095', '#004b8b', '#004b8b', '#570000', '#380000', '#585858', '#000000']
|
||||
};
|
||||
|
||||
// Flavor strings
|
||||
export var strings = {
|
||||
Team: 'team',
|
||||
TeamPlural: 'teams',
|
||||
Company: 'company',
|
||||
CompanyPlural: 'companies'
|
||||
};
|
||||
|
||||
global.window.config = config;
|
||||
@@ -9,7 +9,6 @@ var ActionTypes = Constants.ActionTypes;
|
||||
var AsyncClient = require('./async_client.jsx');
|
||||
var client = require('./client.jsx');
|
||||
var Autolinker = require('autolinker');
|
||||
import {config} from '../utils/config.js';
|
||||
|
||||
export function isEmail(email) {
|
||||
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
|
||||
@@ -295,12 +294,12 @@ function getYoutubeEmbed(link) {
|
||||
$('.post-list-holder-by-time').scrollTop($('.post-list-holder-by-time')[0].scrollHeight);
|
||||
}
|
||||
|
||||
if (config.GoogleDeveloperKey) {
|
||||
if (global.window.config.GoogleDeveloperKey) {
|
||||
$.ajax({
|
||||
async: true,
|
||||
url: 'https://www.googleapis.com/youtube/v3/videos',
|
||||
type: 'GET',
|
||||
data: {part: 'snippet', id: youtubeId, key: config.GoogleDeveloperKey},
|
||||
data: {part: 'snippet', id: youtubeId, key: global.window.config.GoogleDeveloperKey},
|
||||
success: success
|
||||
});
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user