Skip to content

Commit af09e3b

Browse files
committed
fixes issue 2863
1 parent 95426ab commit af09e3b

File tree

4 files changed

+31
-6
lines changed

4 files changed

+31
-6
lines changed

src/components/FileList/AddFilePermissions.jsx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import Modal from 'react-modal'
44
import { mapKeys, get } from 'lodash'
55

66
import UserAutoComplete from '../UserAutoComplete/UserAutoComplete'
7+
import LoadingIndicator from '../LoadingIndicator/LoadingIndicator'
78

89
import './AddFilePermissions.scss'
910
import XMarkIcon from '../../assets/icons/icon-x-mark.svg'
1011

11-
const AddFilePermission = ({ onCancel, onSubmit, onChange, selectedUsers, projectMembers, loggedInUser }) => {
12+
const AddFilePermission = ({ onCancel, onSubmit, onChange, selectedUsers, projectMembers, loggedInUser, isSharingAttachment }) => {
1213
selectedUsers = selectedUsers || ''
1314
const mapHandlesToUserIds = handles => {
1415
const projectMembersByHandle = mapKeys(projectMembers, value => value.handle)
@@ -28,10 +29,18 @@ const AddFilePermission = ({ onCancel, onSubmit, onChange, selectedUsers, projec
2829
<span onClick={onCancel}><XMarkIcon /></span>
2930
</div>
3031

32+
<div styleName="loading-indicator-wrapper">
33+
{ isSharingAttachment && <LoadingIndicator isSmall /> }
34+
</div>
35+
3136
{/* Share with all members */}
3237
<div className="dialog-body">
3338
<div styleName="btn-all-members">
34-
<button className="tc-btn tc-btn-primary tc-btn-md" onClick={() => onSubmit(null)}>All project members</button>
39+
<button
40+
className="tc-btn tc-btn-primary tc-btn-md"
41+
onClick={() => onSubmit(null)}
42+
disabled={isSharingAttachment}
43+
>All project members</button>
3544
</div>
3645
</div>
3746

@@ -41,10 +50,10 @@ const AddFilePermission = ({ onCancel, onSubmit, onChange, selectedUsers, projec
4150

4251
<UserAutoComplete projectMembers={projectMembers} selectedUsers={selectedUsers} onUpdate={onChange} loggedInUser={loggedInUser} />
4352

44-
<div>
53+
<div styleName="btn-selected-members">
4554
<button className="tc-btn tc-btn-primary tc-btn-md"
4655
onClick={() => onSubmit(mapHandlesToUserIds(selectedUsers.split(',')))}
47-
disabled={!selectedUsers || selectedUsers.length === 0 }
56+
disabled={!selectedUsers || selectedUsers.length === 0 || isSharingAttachment }
4857
>Share with selected members</button>
4958
</div>
5059
</div>
@@ -59,7 +68,8 @@ AddFilePermission.propTypes = {
5968
onChange: PropTypes.func.isRequired,
6069
selectedUsers: PropTypes.string,
6170
projectMembers: PropTypes.object,
62-
loggedInUser: PropTypes.object.isRequired
71+
loggedInUser: PropTypes.object.isRequired,
72+
isSharingAttachment: PropTypes.bool.isRequired,
6373
}
6474

6575
export default AddFilePermission
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
.btn-all-members {
22
text-align: center;
33
margin-top: 8px;
4+
}
5+
6+
.loading-indicator-wrapper {
7+
display: flex;
8+
justify-content: center;
9+
}
10+
11+
.btn-selected-members {
12+
margin-top: 10px;
413
}

src/components/LinksMenu/FileLinksMenu.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const FileLinksMenu = ({
3838
selectedUsers,
3939
onAddAttachment,
4040
onUploadAttachment,
41+
isSharingAttachment,
4142
discardAttachments,
4243
onChangePermissions,
4344
pendingAttachments,
@@ -118,6 +119,7 @@ const FileLinksMenu = ({
118119
selectedUsers={selectedUsers}
119120
projectMembers={projectMembers}
120121
loggedInUser={loggedInUser}
122+
isSharingAttachment={isSharingAttachment}
121123
/>
122124
}
123125

@@ -243,6 +245,7 @@ FileLinksMenu.propTypes = {
243245
projectMembers: PropTypes.object,
244246
pendingAttachments: PropTypes.object,
245247
onUploadAttachment: PropTypes.func,
248+
isSharingAttachment: PropTypes.bool.isRequired,
246249
discardAttachments: PropTypes.func,
247250
onChangePermissions: PropTypes.func,
248251
attachmentsStorePath: PropTypes.string.isRequired,

src/projects/detail/containers/ProjectInfoContainer.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class ProjectInfoContainer extends React.Component {
4646
!_.isEqual(nextProps.isProjectProcessing, this.props.isProjectProcessing) ||
4747
!_.isEqual(nextProps.attachmentsAwaitingPermission, this.props.attachmentsAwaitingPermission) ||
4848
!_.isEqual(nextProps.attachmentPermissions, this.props.attachmentPermissions) ||
49+
!_.isEqual(nextProps.isSharingAttachment, this.props.isSharingAttachment) ||
4950
nextProps.activeChannelId !== this.props.activeChannelId
5051
}
5152

@@ -149,7 +150,7 @@ class ProjectInfoContainer extends React.Component {
149150
hideInfo, hideLinks, hideMembers, onChannelClick, activeChannelId, productsTimelines,
150151
isManageUser, phasesTopics, isProjectPlan, isProjectProcessing, projectTemplates,
151152
attachmentsAwaitingPermission, addProjectAttachment, discardAttachments, attachmentPermissions,
152-
changeAttachmentPermission, projectMembers, loggedInUser } = this.props
153+
changeAttachmentPermission, projectMembers, loggedInUser, isSharingAttachment } = this.props
153154
let directLinks = null
154155
// check if direct links need to be added
155156
const isMemberOrCopilot = _.indexOf([PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER], currentMemberRole) > -1
@@ -271,6 +272,7 @@ class ProjectInfoContainer extends React.Component {
271272
onAddNewLink={this.onAddFile}
272273
onAddAttachment={addProjectAttachment}
273274
onUploadAttachment={this.onUploadAttachment}
275+
isSharingAttachment={isSharingAttachment}
274276
discardAttachments={discardAttachments}
275277
onChangePermissions={changeAttachmentPermission}
276278
selectedUsers={attachmentPermissions}
@@ -321,6 +323,7 @@ const mapStateToProps = ({ templates, projectState, members, loadUser }) => {
321323
projectTemplates : templates.projectTemplates,
322324
attachmentsAwaitingPermission: projectState.attachmentsAwaitingPermission,
323325
attachmentPermissions: projectState.attachmentPermissions,
326+
isSharingAttachment: projectState.processingAttachments,
324327
projectMembers: _.keyBy(projectMembers, 'userId'),
325328
loggedInUser: loadUser.user
326329
})

0 commit comments

Comments
 (0)