const React = require('react'); import ShareContextConsumer from '../ShareContextConsumer' import UserBadge from './UserBadge' import SharedUserEntry from './SharedUserEntry' import ActionButton from '../main/ActionButton' import Card from '../main/Card' const Pydio = require('pydio') const {UsersCompleter} = Pydio.requireLib('components') const {Paper} = require('material-ui') let SharedUsers = React.createClass({ propTypes: { pydio:React.PropTypes.instanceOf(Pydio), users:React.PropTypes.array.isRequired, userObjects:React.PropTypes.object.isRequired, onUserUpdate:React.PropTypes.func.isRequired, saveSelectionAsTeam:React.PropTypes.func, sendInvitations:React.PropTypes.func, showTitle:React.PropTypes.bool }, sendInvitationToAllUsers:function(){ this.props.sendInvitations(this.props.userObjects); }, clearAllUsers:function(){ this.props.users.map(function(entry){ this.props.onUserUpdate('remove', entry.ID, entry); }.bind(this)); }, valueSelected: function(userObject){ var newEntry = { ID : userObject.getId(), RIGHT :'r', LABEL : userObject.getLabel(), TYPE : userObject.getGroup() ? 'group' : 'user' }; this.props.onUserUpdate('add', newEntry.ID, newEntry); }, completerRenderSuggestion: function(userObject){ let type = (userObject.getType() === 'team' || userObject.getId().indexOf('/AJXP_TEAM/') === 0 ? 'team' : ( userObject.getGroup() ? 'group' : ( userObject.getTemporary()? 'temporary' : ( userObject.getExternal()? 'tmp_user':'user' ) ) ) ); return ( ); }, render: function(){ // sort by group/user then by ID; const userEntries = this.props.users.sort(function(a,b) { return (b.TYPE === 'group' || b.TYPE === 'team') ? 1 : ((a.TYPE === 'group' || a.TYPE === 'team') ? -1 : (a.ID > b.ID) ? 1 : ((b.ID > a.ID) ? -1 : 0)); } ).map(function(u){ return }.bind(this)); let actionLinks = []; if(this.props.users.length && !this.props.isReadonly()){ actionLinks.push() } if(this.props.sendInvitations && this.props.users.length){ actionLinks.push() } if(this.props.saveSelectionAsTeam && this.props.users.length > 1 && !this.props.isReadonly()){ actionLinks.push() } let rwHeader, usersInput; if(this.props.users.length){ rwHeader = (
{this.props.getMessage('361', '')} {this.props.getMessage('181')}
); } if(!this.props.isReadonly()){ const excludes = this.props.users.map(function(u){return u.ID}); usersInput = ( ); } return (
{usersInput}
{rwHeader}
{userEntries}
{!userEntries.length &&
{this.props.getMessage('182')}
}
); } }); SharedUsers = ShareContextConsumer(SharedUsers) export {SharedUsers as default}