summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-03-14 07:17:31 -0400
committerChristopher Speller <crspeller@gmail.com>2016-03-14 07:17:31 -0400
commitbf7ae0711743926cfbb031675cc3320d7a942465 (patch)
tree44ad955ae2dba1991c8b7b7986d90c1a79cdfb65 /web
parent975159b52ac6bf0ee6b2d5b73d2391b2e0c6e165 (diff)
parent72ed22d7421f50bc686e5adaea2f4a416fcbad27 (diff)
downloadchat-bf7ae0711743926cfbb031675cc3320d7a942465.tar.gz
chat-bf7ae0711743926cfbb031675cc3320d7a942465.tar.bz2
chat-bf7ae0711743926cfbb031675cc3320d7a942465.zip
Merge branch 'release-2.1'
Diffstat (limited to 'web')
-rw-r--r--web/react/components/login.jsx34
-rw-r--r--web/react/components/post_body_additional_content.jsx20
-rw-r--r--web/react/components/textbox.jsx2
-rw-r--r--web/react/components/user_settings/custom_theme_chooser.jsx2
-rw-r--r--web/react/stores/socket_store.jsx14
-rw-r--r--web/react/utils/constants.jsx36
-rw-r--r--web/sass-files/sass/partials/_responsive.scss3
-rw-r--r--web/static/i18n/pt.json20
-rw-r--r--web/static/images/themes/code_themes/solarized-dark.png (renamed from web/static/images/themes/code_themes/solarized_dark.png)bin81942 -> 81942 bytes
-rw-r--r--web/static/images/themes/code_themes/solarized-light.png (renamed from web/static/images/themes/code_themes/solarized_light.png)bin82868 -> 82868 bytes
10 files changed, 88 insertions, 43 deletions
diff --git a/web/react/components/login.jsx b/web/react/components/login.jsx
index 30c8ffe4f..d3ee35082 100644
--- a/web/react/components/login.jsx
+++ b/web/react/components/login.jsx
@@ -49,6 +49,8 @@ export default class Login extends React.Component {
const teamDisplayName = currentTeam.display_name;
const teamName = currentTeam.name;
+ const ldapEnabled = global.window.mm_config.EnableLdap === 'true';
+ const usernameSigninEnabled = global.window.mm_config.EnableSignInWithUsername === 'true';
let loginMessage = [];
if (global.window.mm_config.EnableSignUpWithGitLab === 'true') {
@@ -209,6 +211,22 @@ export default class Login extends React.Component {
);
}
+ if (ldapEnabled && (loginMessage.length > 0 || emailSignup || usernameSigninEnabled)) {
+ ldapLogin = (
+ <div>
+ <div className='or__container'>
+ <FormattedMessage
+ id='login.or'
+ defaultMessage='or'
+ />
+ </div>
+ <LoginLdap
+ teamName={teamName}
+ />
+ </div>
+ );
+ }
+
let usernameLogin = null;
if (global.window.mm_config.EnableSignInWithUsername === 'true') {
usernameLogin = (
@@ -218,6 +236,22 @@ export default class Login extends React.Component {
);
}
+ if (usernameSigninEnabled && (loginMessage.length > 0 || emailSignup || ldapEnabled)) {
+ usernameLogin = (
+ <div>
+ <div className='or__container'>
+ <FormattedMessage
+ id='login.or'
+ defaultMessage='or'
+ />
+ </div>
+ <LoginUsername
+ teamName={teamName}
+ />
+ </div>
+ );
+ }
+
return (
<div>
<div className='signup-header'>
diff --git a/web/react/components/post_body_additional_content.jsx b/web/react/components/post_body_additional_content.jsx
index c2a928f3b..70b3c8dbf 100644
--- a/web/react/components/post_body_additional_content.jsx
+++ b/web/react/components/post_body_additional_content.jsx
@@ -112,24 +112,32 @@ export default class PostBodyAdditionalContent extends React.Component {
}
render() {
- var generateEmbed = this.generateEmbed();
+ const generateEmbed = this.generateEmbed();
+
if (generateEmbed) {
- return (
- <div>
+ let toggle;
+ if (Utils.isFeatureEnabled(Constants.PRE_RELEASE_FEATURES.EMBED_TOGGLE)) {
+ toggle = (
<a className='post__embed-visibility'
data-expanded={this.state.embedVisible}
aria-label='Toggle Embed Visibility'
onClick={this.toggleEmbedVisibility}
- >
- </a>
+ />
+ );
+ }
+
+ return (
+ <div>
+ {toggle}
<div className='post__embed-container'
hidden={!this.state.embedVisible}
>
{generateEmbed}
</div>
</div>
- );
+ );
}
+
return null;
}
}
diff --git a/web/react/components/textbox.jsx b/web/react/components/textbox.jsx
index c8c0c071e..d4eb60676 100644
--- a/web/react/components/textbox.jsx
+++ b/web/react/components/textbox.jsx
@@ -61,7 +61,7 @@ export default class Textbox extends React.Component {
onRecievedError() {
const errorCount = ErrorStore.getConnectionErrorCount();
- if (errorCount > 0) {
+ if (errorCount > 1) {
this.setState({connection: 'bad-connection'});
} else {
this.setState({connection: ''});
diff --git a/web/react/components/user_settings/custom_theme_chooser.jsx b/web/react/components/user_settings/custom_theme_chooser.jsx
index 1e724bb6e..4ee9fd0e2 100644
--- a/web/react/components/user_settings/custom_theme_chooser.jsx
+++ b/web/react/components/user_settings/custom_theme_chooser.jsx
@@ -253,6 +253,8 @@ class CustomThemeChooser extends React.Component {
</div>
</div>
);
+
+ colors += theme[element.id] + ',';
} else if (element.group === 'sidebarElements') {
sidebarElements.push(
<div
diff --git a/web/react/stores/socket_store.jsx b/web/react/stores/socket_store.jsx
index ad24a04cd..181de53d7 100644
--- a/web/react/stores/socket_store.jsx
+++ b/web/react/stores/socket_store.jsx
@@ -31,6 +31,7 @@ class SocketStoreClass extends EventEmitter {
this.close = this.close.bind(this);
this.failCount = 0;
+ this.isInitialize = false;
this.translations = this.getDefaultTranslations();
@@ -54,24 +55,23 @@ class SocketStoreClass extends EventEmitter {
if (this.failCount === 0) {
console.log('websocket connecting to ' + connUrl); //eslint-disable-line no-console
- if (ErrorStore.getConnectionErrorCount() > 0) {
- ErrorStore.setConnectionErrorCount(0);
- ErrorStore.emitChange();
- }
}
+
conn = new WebSocket(connUrl);
conn.onopen = () => {
if (this.failCount > 0) {
console.log('websocket re-established connection'); //eslint-disable-line no-console
+ AsyncClient.getChannels();
+ AsyncClient.getPosts(ChannelStore.getCurrentId());
+ }
+ if (this.isInitialize) {
ErrorStore.clearLastError();
ErrorStore.emitChange();
-
- AsyncClient.getChannels();
- AsyncClient.getPosts(ChannelStore.getCurrentId());
}
+ this.isInitialize = true;
this.failCount = 0;
};
diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx
index 2cff4dbed..3de562b7b 100644
--- a/web/react/utils/constants.jsx
+++ b/web/react/utils/constants.jsx
@@ -270,7 +270,7 @@ export default {
buttonColor: '#FFFFFF',
mentionHighlightBg: '#984063',
mentionHighlightLink: '#A4FFEB',
- codeTheme: 'solarized_dark'
+ codeTheme: 'solarized-dark'
},
windows10: {
type: 'Windows Dark',
@@ -374,21 +374,6 @@ export default {
uiName: 'New Message Separator'
},
{
- group: 'linkAndButtonElements',
- id: 'linkColor',
- uiName: 'Link Color'
- },
- {
- group: 'linkAndButtonElements',
- id: 'buttonBg',
- uiName: 'Button BG'
- },
- {
- group: 'linkAndButtonElements',
- id: 'buttonColor',
- uiName: 'Button Text'
- },
- {
group: 'centerChannelElements',
id: 'mentionHighlightBg',
uiName: 'Mention Highlight BG'
@@ -404,11 +389,11 @@ export default {
uiName: 'Code Theme',
themes: [
{
- id: 'solarized_dark',
+ id: 'solarized-dark',
uiName: 'Solarized Dark'
},
{
- id: 'solarized_light',
+ id: 'solarized-light',
uiName: 'Solarized Light'
},
{
@@ -420,6 +405,21 @@ export default {
uiName: 'Monokai'
}
]
+ },
+ {
+ group: 'linkAndButtonElements',
+ id: 'linkColor',
+ uiName: 'Link Color'
+ },
+ {
+ group: 'linkAndButtonElements',
+ id: 'buttonBg',
+ uiName: 'Button BG'
+ },
+ {
+ group: 'linkAndButtonElements',
+ id: 'buttonColor',
+ uiName: 'Button Text'
}
],
DEFAULT_CODE_THEME: 'github',
diff --git a/web/sass-files/sass/partials/_responsive.scss b/web/sass-files/sass/partials/_responsive.scss
index a9a572768..06ce17041 100644
--- a/web/sass-files/sass/partials/_responsive.scss
+++ b/web/sass-files/sass/partials/_responsive.scss
@@ -573,8 +573,7 @@
.glyphicon-refresh-animate {
right: 33px;
top: 15px;
- color: #fff;
- color: rgba(255,255,255,0.5);
+ color: #aaa;
}
.form-control {
border: none;
diff --git a/web/static/i18n/pt.json b/web/static/i18n/pt.json
index d276e339a..f6210a6ae 100644
--- a/web/static/i18n/pt.json
+++ b/web/static/i18n/pt.json
@@ -27,7 +27,7 @@
"admin.email.allowEmailSignInDescription": "Quando verdadeiro, Mattermost permite aos usuários fazer login usando o e-mail e senha.",
"admin.email.allowEmailSignInTitle": "Permitir Login Com E-mail: ",
"admin.email.allowSignupDescription": "Quando verdadeiro, Mattermost permite a criação de equipe e conta de inscrição através de e-mail e senha. Este valor deve ser falso somente quando você deseja limitar a entrada para o single-sign-on service como OAuth ou LDAP.",
- "admin.email.allowSignupTitle": "Permitir Login com E-Mail: ",
+ "admin.email.allowSignupTitle": "Permitir Inscrição com E-Mail: ",
"admin.email.allowUsernameSignInDescription": "Quando verdadeiro, Mattermost permite os usuários fazer login usando seu nome de usuário e senha. Esta configuração é normalmente utilizado apenas quando a verificação de e-mail está desativada.",
"admin.email.allowUsernameSignInTitle": "Permitir Login Com Usuário: ",
"admin.email.connectionSecurityNone": "Nenhum",
@@ -44,7 +44,7 @@
"admin.email.false": "falso",
"admin.email.inviteSaltDescription": "32-caracteres salt adicionados a assinatura de convites por e-mail. Aleatoriamente gerados na instalação. Click \"Re-Gerar\" para criar um novo salt.",
"admin.email.inviteSaltExample": "Ex \"bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo\"",
- "admin.email.inviteSaltTitle": "Convidar Salt:",
+ "admin.email.inviteSaltTitle": "Salt Convite:",
"admin.email.notificationDisplayDescription": "Mostra o nome da conta de e-mail usada quando a notificação de e-mail é enviado do Mattermost.",
"admin.email.notificationDisplayExample": "Ex: \"Mattermost Notificação\", \"Sistema\", \"Não-Responda\"",
"admin.email.notificationDisplayTitle": "Notificação Nome de Exibição:",
@@ -192,11 +192,13 @@
"admin.ldap.usernameAttrEx": "Ex \"sAMAccountName\"",
"admin.ldap.usernameAttrTitle": "Atributo do Usuário:",
"admin.licence.keyMigration": "Se você estiver migrando seu servidor você pode precisar remover sua chave da licença deste servidor a pedido para instala-la em um novo servidor. Para iniciar, <a href=\"http://mattermost.com\" target=\"_blank\">desativar todos os recursos Enterprise Edition deste servidor</a>. Isto irá habilitar para remover a chave da licença e fazer downgrade deste servidor Enterprise Edition para Team Edition.",
+ "admin.license.chooseFile": "Escolha um Arquivo",
"admin.license.edition": "Edição: ",
"admin.license.enterpriseEdition": "Mattermost Enterprise Edition. Desenvolvido para escala empresarial de comunicação.",
"admin.license.enterpriseType": "<div><p>Esta versão compilada da plataforma Mattermost é fornecida sob a <a href=\"http://mattermost.com\" target=\"_blank\">licença comercial</a> para Mattermost, Inc. com base em seu nível de subscrição e está sujeito a <a href=\"{terms}\" target=\"_blank\">Termos de Serviço.</a></p><p>Os detalhes de sua assinatura, são como segue:</p>Nome: {name}<br />Nome da Empresa ou organização: {company}<br/>Número de usuários: {users}<br/>Licença emitida: {issued}<br/>Data de Início da licença: {start}<br/>Data de expiração da licença: {expires}<br/>LDAP: {ldap}<br/></div>",
"admin.license.key": "Chave da Licença: ",
"admin.license.keyRemove": "Remover a Licença Enterprise e fazer Downgrade do Servidor",
+ "admin.license.noFile": "Nenhum arquivo enviado",
"admin.license.removing": "Removendo a Licença...",
"admin.license.teamEdition": "Mattermost Team Edition. Desenvolvido para equipes de 5 a 50 usuários.",
"admin.license.teamType": "<span><p>Esta versão compilada da plataforma Mattermost é oferecido sob uma licença MIT.</p><p>Ver MIT-COMPILED-LICENSE.txt no raiz do diretório de instalação para obter detalhes. Ver NOTICES.txt para obter informações sobre o software open source usados neste sistema.</p></span>",
@@ -206,7 +208,7 @@
"admin.license.uploadDesc": "Enviar uma chave da licença para Mattermost Enterprise Edition para fazer upgrade deste servidor. <a href=\"http://mattermost.com\" target=\"_blank\">Visite-nos online</a> para saber mais sobre os beneficios da Enterprise Edition ou para comprar uma chave.",
"admin.license.uploading": "Enviando Licença...",
"admin.log.consoleDescription": "Normalmente definido como falso em produção. Os desenvolvedores podem definir este campo como verdadeiro para mensagens de log de saída no console baseado na opção de nível de console. Se verdadeiro, o servidor escreve mensagens para o fluxo de saída padrão (stdout).",
- "admin.log.consoleTitle": "Log Do Console: ",
+ "admin.log.consoleTitle": "Log Para o Console: ",
"admin.log.false": "falso",
"admin.log.fileDescription": "Normalmente definido como verdadeiro em produção. Quando verdadeiro, arquivos de log são gravados no arquivo de log especificado no campo de localização abaixo.",
"admin.log.fileLevelDescription": "Esta configuração determina o nível de detalhe que são gravados no log de eventos no console. ERROR: Saídas somente mensagens de erro. INFO: Saídas de mensagens de erro e informações em torno de inicialização. DEBUG: Impressões de alto detalhe para desenvolvedores que trabalham na depuração de problemas.",
@@ -696,7 +698,7 @@
"general_tab.regenerate": "Re-Gerar",
"general_tab.required": "Este campo é obrigatório",
"general_tab.teamName": "Nome da Equipe",
- "general_tab.teamNameInfo": "Defina o nome da equipe como aparece na sua tela inicial e no topo na lateral esquerda.",
+ "general_tab.teamNameInfo": "Defina o nome da equipe como aparece na sua tela de login e no topo na lateral esquerda.",
"general_tab.title": "Definições Gerais",
"general_tab.yes": "Sim",
"get_link.clipboard": " Link copiado para a área de transferência.",
@@ -754,7 +756,7 @@
"login.noAccount": "Não tem uma conta? ",
"login.on": "no {siteName}",
"login.or": "ou",
- "login.signTo": "Entrar em:",
+ "login.signTo": "Login em:",
"login.verified": " Email Verificado",
"login_email.badTeam": "Nome ruim de equipe",
"login_email.email": "E-mail",
@@ -948,7 +950,7 @@
"signup_user_completed.chooseUser": "Escolha o seu nome de usuário",
"signup_user_completed.create": "Criar Conta",
"signup_user_completed.emailHelp": "Email valido necessário para inscrição",
- "signup_user_completed.emailIs": "Seu endereço de e-mail é <strong>{email}</strong>. Você irá usar esse endereço para entrar em {siteName}.",
+ "signup_user_completed.emailIs": "Seu endereço de e-mail é <strong>{email}</strong>. Você irá usar esse endereço para logar no {siteName}.",
"signup_user_completed.expired": "Você já concluiu o processo de inscrição para este convite ou este convite expirou.",
"signup_user_completed.gitlab": "com GitLab",
"signup_user_completed.google": "com Google",
@@ -1012,7 +1014,7 @@
"team_signup_display_name.required": "Este campo é obrigatório",
"team_signup_display_name.teamName": "Nome Da Equipe",
"team_signup_email.address": "Endereço de E-mail",
- "team_signup_email.different": "Por favor, use um e-mail diferente do que o usado no login",
+ "team_signup_email.different": "Por favor, use um e-mail diferente do que o usado na inscrição",
"team_signup_email.validEmail": "Por favor entre um endereço de e-mail válido",
"team_signup_password.agreement": "Ao prosseguir para criar sua conta e usar {siteName}, você concorda com nosso <a href='/static/help/terms.html'>Termo de Serviço</a> e <a href='/static/help/privacy.html'>Politica de Privacidade</a>. Se você não concorda, você não pode usar {siteName}.",
"team_signup_password.back": "Voltar para o passo anterior",
@@ -1285,7 +1287,7 @@
"user.settings.security.logoutActiveSessions": "Ver e fazer Logout das Sessões Ativas",
"user.settings.security.method": "Método de Login",
"user.settings.security.newPassword": "Nova Senha",
- "user.settings.security.oneSignin": "Você pode ter somente um método de inscrição por vez. Trocando o método de inscrição será enviado um email de notificação se você alterar com sucesso.",
+ "user.settings.security.oneSignin": "Você pode ter somente um método de login por vez. Trocando o método de login será enviado um email de notificação se você alterar com sucesso.",
"user.settings.security.password": "Senha",
"user.settings.security.passwordLengthError": "Novas senhas precisam ter pelo menos {chars} characters",
"user.settings.security.passwordMatchError": "As novas senhas que você inseriu não correspondem",
@@ -1301,4 +1303,4 @@
"view_image_popover.download": "Download",
"view_image_popover.file": "Arquivo {count} de {total}",
"view_image_popover.publicLink": "Obter O Link Público"
-}
+} \ No newline at end of file
diff --git a/web/static/images/themes/code_themes/solarized_dark.png b/web/static/images/themes/code_themes/solarized-dark.png
index 582df48f9..582df48f9 100644
--- a/web/static/images/themes/code_themes/solarized_dark.png
+++ b/web/static/images/themes/code_themes/solarized-dark.png
Binary files differ
diff --git a/web/static/images/themes/code_themes/solarized_light.png b/web/static/images/themes/code_themes/solarized-light.png
index d2c2702fb..d2c2702fb 100644
--- a/web/static/images/themes/code_themes/solarized_light.png
+++ b/web/static/images/themes/code_themes/solarized-light.png
Binary files differ