Merge branch 'master' of https://github.com/mattermost/platform into mm-1866
Этот коммит содержится в:
@@ -152,6 +152,10 @@ export default class PostList extends React.Component {
|
|||||||
postHolder.off('scroll');
|
postHolder.off('scroll');
|
||||||
}
|
}
|
||||||
componentDidUpdate(prevProps, prevState) {
|
componentDidUpdate(prevProps, prevState) {
|
||||||
|
if (!this.props.isActive) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$('.post-list__content div .post').removeClass('post--last');
|
$('.post-list__content div .post').removeClass('post--last');
|
||||||
$('.post-list__content div:last-child .post').addClass('post--last');
|
$('.post-list__content div:last-child .post').addClass('post--last');
|
||||||
|
|
||||||
@@ -219,8 +223,8 @@ export default class PostList extends React.Component {
|
|||||||
scrollToBottom(force) {
|
scrollToBottom(force) {
|
||||||
this.isUserScroll = false;
|
this.isUserScroll = false;
|
||||||
var postHolder = $(React.findDOMNode(this.refs.postlist));
|
var postHolder = $(React.findDOMNode(this.refs.postlist));
|
||||||
if ($('#new_message')[0] && !this.userHasSeenNew && !force) {
|
if ($('#new_message_' + this.props.channelId)[0] && !this.userHasSeenNew && !force) {
|
||||||
$('#new_message')[0].scrollIntoView();
|
$('#new_message_' + this.props.channelId)[0].scrollIntoView();
|
||||||
} else {
|
} else {
|
||||||
postHolder.addClass('hide-scroll');
|
postHolder.addClass('hide-scroll');
|
||||||
postHolder[0].scrollTop = postHolder[0].scrollHeight;
|
postHolder[0].scrollTop = postHolder[0].scrollHeight;
|
||||||
@@ -539,7 +543,7 @@ export default class PostList extends React.Component {
|
|||||||
// Temporary fix to solve ie10/11 rendering issue
|
// Temporary fix to solve ie10/11 rendering issue
|
||||||
let newSeparatorId = '';
|
let newSeparatorId = '';
|
||||||
if (!utils.isBrowserIE()) {
|
if (!utils.isBrowserIE()) {
|
||||||
newSeparatorId = 'new_message';
|
newSeparatorId = 'new_message_' + this.props.channelId;
|
||||||
}
|
}
|
||||||
postCtls.push(
|
postCtls.push(
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ export default class SettingsUpload extends React.Component {
|
|||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<ul className='section-max'>
|
<ul className='section-max'>
|
||||||
<li className='col-xs-12 section-title'>{this.props.title}</li>
|
<li className='col-sm-12 section-title'>{this.props.title}</li>
|
||||||
<li className='col-xs-offset-3'>{this.props.helpText}</li>
|
<li className='col-sm-offset-3 col-sm-9'>{this.props.helpText}</li>
|
||||||
<li className='col-xs-offset-3 col-xs-8'>
|
<li className='col-sm-offset-3 col-sm-9'>
|
||||||
<ul className='setting-list'>
|
<ul className='setting-list'>
|
||||||
<li className='setting-list-item'>
|
<li className='setting-list-item'>
|
||||||
<span className='btn btn-sm btn-primary btn-file sel-btn'>
|
<span className='btn btn-sm btn-primary btn-file sel-btn'>
|
||||||
|
|||||||
@@ -34,13 +34,11 @@ export default class TeamImportTab extends React.Component {
|
|||||||
render() {
|
render() {
|
||||||
var uploadHelpText = (
|
var uploadHelpText = (
|
||||||
<div>
|
<div>
|
||||||
<br/>
|
<p>{'Slack does not allow you to export files, images, private groups or direct messages stored in Slack. Therefore, Slack import to Mattermost only supports importing of text messages in your Slack team\'\s public channels.'}</p>
|
||||||
Slack does not allow you to export files, images, private groups or direct messages stored in Slack. Therefore, Slack import to Mattermost only supports importing of text messages in your Slack team's public channels.
|
<p>{'The Slack import to Mattermost is in "Preview". Slack bot posts and channels with underscores do not yet import.'}</p>
|
||||||
<br/><br/>
|
|
||||||
The Slack import to Mattermost is in "Preview". Slack bot posts and channels with underscores do not yet import.
|
|
||||||
<br/><br/>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
var uploadSection = (
|
var uploadSection = (
|
||||||
<SettingUpload
|
<SettingUpload
|
||||||
title='Import from Slack'
|
title='Import from Slack'
|
||||||
@@ -58,7 +56,7 @@ export default class TeamImportTab extends React.Component {
|
|||||||
break;
|
break;
|
||||||
case 'in-progress':
|
case 'in-progress':
|
||||||
messageSection = (
|
messageSection = (
|
||||||
<p className='confirm-import alert alert-warning'><i className='fa fa-spinner fa-pulse'></i> Importing...</p>
|
<p className='confirm-import alert alert-warning'><i className='fa fa-spinner fa-pulse'></i>{' Importing...'}</p>
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'done':
|
case 'done':
|
||||||
@@ -99,18 +97,18 @@ export default class TeamImportTab extends React.Component {
|
|||||||
data-dismiss='modal'
|
data-dismiss='modal'
|
||||||
aria-label='Close'
|
aria-label='Close'
|
||||||
>
|
>
|
||||||
<span aria-hidden='true'>×</span>
|
<span aria-hidden='true'>{'×'}</span>
|
||||||
</button>
|
</button>
|
||||||
<h4
|
<h4
|
||||||
className='modal-title'
|
className='modal-title'
|
||||||
ref='title'
|
ref='title'
|
||||||
><i className='modal-back'></i>Import</h4>
|
><i className='modal-back'></i>{'Import'}</h4>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
ref='wrapper'
|
ref='wrapper'
|
||||||
className='user-settings'
|
className='user-settings'
|
||||||
>
|
>
|
||||||
<h3 className='tab-header'>Import</h3>
|
<h3 className='tab-header'>{'Import'}</h3>
|
||||||
<div className='divider-dark first'/>
|
<div className='divider-dark first'/>
|
||||||
{uploadSection}
|
{uploadSection}
|
||||||
<div className='divider-dark'/>
|
<div className='divider-dark'/>
|
||||||
|
|||||||
@@ -63,7 +63,6 @@
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
button.close {
|
button.close {
|
||||||
margin: -2px -2px 0 0;
|
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@include opacity(1);
|
@include opacity(1);
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
@@ -71,7 +70,8 @@
|
|||||||
height: 30px;
|
height: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
@include single-transition(all, 0.25s, ease-in);
|
@include single-transition(all, 0.25s, ease-in);
|
||||||
position: relative;
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba(0, 0, 0, 0.1);
|
background: rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ body.ios {
|
|||||||
padding: 1em 0 0;
|
padding: 1em 0 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
&.hide-scroll::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: 0px !important;
|
width: 0px !important;
|
||||||
}
|
}
|
||||||
&.inactive {
|
&.inactive {
|
||||||
|
|||||||
@@ -365,6 +365,9 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
}
|
}
|
||||||
|
.modal-title {
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
.user-settings {
|
.user-settings {
|
||||||
.tab-header {
|
.tab-header {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -526,6 +529,12 @@
|
|||||||
height: 45px;
|
height: 45px;
|
||||||
position: relative;
|
position: relative;
|
||||||
@include single-transition(all, 0.2s, linear);
|
@include single-transition(all, 0.2s, linear);
|
||||||
|
.glyphicon-refresh-animate {
|
||||||
|
right: 33px;
|
||||||
|
top: 15px;
|
||||||
|
color: #fff;
|
||||||
|
color: rgba(255,255,255,0.5);
|
||||||
|
}
|
||||||
.form-control {
|
.form-control {
|
||||||
border: none;
|
border: none;
|
||||||
padding: 0 10px 0 31px;
|
padding: 0 10px 0 31px;
|
||||||
|
|||||||
@@ -14,13 +14,15 @@
|
|||||||
width:800px;
|
width:800px;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
.modal-back {
|
.modal-back {
|
||||||
width: 8px;
|
width: 40px;
|
||||||
height: 13px;
|
height: 56px;
|
||||||
background: url("../images/arrow-left.png");
|
background: url("../images/arrow-left.png") no-repeat;
|
||||||
@include background-size(100% 100%);
|
@include background-size(8px 13px);
|
||||||
margin-right: 10px;
|
background-position: center;
|
||||||
display: inline-block;
|
top: 0;
|
||||||
|
left: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
position: absolute;
|
||||||
}
|
}
|
||||||
.modal-body {
|
.modal-body {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -59,7 +61,7 @@
|
|||||||
|
|
||||||
.section-max {
|
.section-max {
|
||||||
background: #f2f2f2;
|
background: #f2f2f2;
|
||||||
padding: 1em 0;
|
padding: 1em 0 1.3em;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
@include clearfix;
|
@include clearfix;
|
||||||
.section-title {
|
.section-title {
|
||||||
|
|||||||
@@ -10,6 +10,10 @@
|
|||||||
&.sidebar--padded {
|
&.sidebar--padded {
|
||||||
padding-top: 44px;
|
padding-top: 44px;
|
||||||
}
|
}
|
||||||
|
.dropdown-menu {
|
||||||
|
max-height: 300px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
.search__form {
|
.search__form {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 1em 1em 0;
|
padding: 1em 1em 0;
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user