Modal improvements for members

Этот коммит содержится в:
Asaad Mahmood
2015-11-05 21:43:41 +05:00
родитель 36174aed88
Коммит bc1820a498
7 изменённых файлов: 134 добавлений и 96 удалений

Просмотреть файл

@@ -212,7 +212,8 @@ export default class UserItem extends React.Component {
} }
return ( return (
<div className='row member-div'> <tr>
<td className='row member-div'>
<img <img
className='post-profile-img pull-left' className='post-profile-img pull-left'
src={`/api/v1/users/${user.id}/image?time=${user.update_at}&${Utils.getSessionIndex()}`} src={`/api/v1/users/${user.id}/image?time=${user.update_at}&${Utils.getSessionIndex()}`}
@@ -255,7 +256,8 @@ export default class UserItem extends React.Component {
</ul> </ul>
</div> </div>
{serverError} {serverError}
</div> </td>
</tr>
); );
} }
} }

Просмотреть файл

@@ -54,6 +54,16 @@ export default class ChannelInviteModal extends React.Component {
loading loading
}; };
} }
onShow() {
if ($(window).width() > 768) {
$(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar();
}
}
componentDidUpdate(prevProps) {
if (this.props.show && !prevProps.show) {
this.onShow();
}
}
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
if (!this.props.show && nextProps.show) { if (!this.props.show && nextProps.show) {
ChannelStore.addExtraInfoChangeListener(this.onListenerChange); ChannelStore.addExtraInfoChangeListener(this.onListenerChange);
@@ -103,6 +113,11 @@ export default class ChannelInviteModal extends React.Component {
); );
} }
render() { render() {
var maxHeight = 1000;
if (Utils.windowHeight() <= 1200) {
maxHeight = Utils.windowHeight() - 300;
}
var inviteError = null; var inviteError = null;
if (this.state.inviteError) { if (this.state.inviteError) {
inviteError = (<label className='has-error control-label'>{this.state.inviteError}</label>); inviteError = (<label className='has-error control-label'>{this.state.inviteError}</label>);
@@ -129,13 +144,17 @@ export default class ChannelInviteModal extends React.Component {
return ( return (
<Modal <Modal
dialogClassName='more-modal'
show={this.props.show} show={this.props.show}
onHide={this.props.onModalDismissed} onHide={this.props.onModalDismissed}
> >
<Modal.Header closeButton={true}> <Modal.Header closeButton={true}>
<Modal.Title>{'Add New Members to '}<span className='name'>{this.state.channelName}</span></Modal.Title> <Modal.Title>{'Add New Members to '}<span className='name'>{this.state.channelName}</span></Modal.Title>
</Modal.Header> </Modal.Header>
<Modal.Body> <Modal.Body
ref='modalBody'
style={{maxHeight}}
>
{inviteError} {inviteError}
{content} {content}
</Modal.Body> </Modal.Body>

Просмотреть файл

@@ -70,6 +70,16 @@ export default class ChannelMembersModal extends React.Component {
channelName channelName
}; };
} }
onShow() {
if ($(window).width() > 768) {
$(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar();
}
}
componentDidUpdate(prevProps) {
if (this.props.show && !prevProps.show) {
this.onShow();
}
}
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
if (!this.props.show && nextProps.show) { if (!this.props.show && nextProps.show) {
ChannelStore.addExtraInfoChangeListener(this.onChange); ChannelStore.addExtraInfoChangeListener(this.onChange);
@@ -128,6 +138,11 @@ export default class ChannelMembersModal extends React.Component {
); );
} }
render() { render() {
var maxHeight = 1000;
if (Utils.windowHeight() <= 1200) {
maxHeight = Utils.windowHeight() - 300;
}
const currentMember = ChannelStore.getCurrentMember(); const currentMember = ChannelStore.getCurrentMember();
let isAdmin = false; let isAdmin = false;
if (currentMember) { if (currentMember) {
@@ -137,6 +152,7 @@ export default class ChannelMembersModal extends React.Component {
return ( return (
<div> <div>
<Modal <Modal
dialogClassName='more-modal'
show={this.props.show} show={this.props.show}
onHide={this.props.onModalDismissed} onHide={this.props.onModalDismissed}
> >
@@ -153,8 +169,10 @@ export default class ChannelMembersModal extends React.Component {
<i className='glyphicon glyphicon-envelope'/>{' Add New Members'} <i className='glyphicon glyphicon-envelope'/>{' Add New Members'}
</a> </a>
</Modal.Header> </Modal.Header>
<Modal.Body> <Modal.Body
<div className='col-sm-12'> ref='modalBody'
style={{maxHeight}}
>
<div className='team-member-list'> <div className='team-member-list'>
<MemberList <MemberList
memberList={this.state.memberList} memberList={this.state.memberList}
@@ -162,7 +180,6 @@ export default class ChannelMembersModal extends React.Component {
handleRemove={this.handleRemove} handleRemove={this.handleRemove}
/> />
</div> </div>
</div>
</Modal.Body> </Modal.Body>
<Modal.Footer> <Modal.Footer>
<button <button

Просмотреть файл

@@ -15,7 +15,7 @@ export default class MemberList extends React.Component {
members = this.props.memberList; members = this.props.memberList;
} }
var message = ''; var message = null;
if (members.length === 0) { if (members.length === 0) {
message = <tr><td>No users to add.</td></tr>; message = <tr><td>No users to add.</td></tr>;
} }

Просмотреть файл

@@ -166,7 +166,8 @@ export default class MemberListTeamItem extends React.Component {
} }
return ( return (
<div className='row member-div'> <tr>
<td className='row member-div'>
<img <img
className='post-profile-img pull-left' className='post-profile-img pull-left'
src={`/api/v1/users/${user.id}/image?time=${timestamp}&${Utils.getSessionIndex()}`} src={`/api/v1/users/${user.id}/image?time=${timestamp}&${Utils.getSessionIndex()}`}
@@ -199,7 +200,8 @@ export default class MemberListTeamItem extends React.Component {
</ul> </ul>
</div> </div>
{serverError} {serverError}
</div> </td>
</tr>
); );
} }
} }

Просмотреть файл

@@ -79,7 +79,7 @@ export default class TeamMembers extends React.Component {
return ( return (
<div <div
className='modal fade' className='modal fade more-modal'
ref='modal' ref='modal'
id='team_members' id='team_members'
tabIndex='-1' tabIndex='-1'
@@ -106,13 +106,11 @@ export default class TeamMembers extends React.Component {
ref='modalBody' ref='modalBody'
className='modal-body' className='modal-body'
> >
<div className='channel-settings'>
<div className='team-member-list'> <div className='team-member-list'>
{renderMembers} {renderMembers}
</div> </div>
{serverError} {serverError}
</div> </div>
</div>
<div className='modal-footer'> <div className='modal-footer'>
<button <button
type='button' type='button'

Просмотреть файл

@@ -174,7 +174,7 @@
td { td {
width: 100%; width: 100%;
white-space: nowrap; white-space: nowrap;
overflow: hidden; @include legacy-pie-clearfix;
text-overflow: ellipsis; text-overflow: ellipsis;
padding: 8px 8px 8px 15px; padding: 8px 8px 8px 15px;
&.td--action { &.td--action {