Skip to content

Commit b8198c8

Browse files
committed
add writeCapability to create new room
1 parent e5f00f8 commit b8198c8

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

src/libs/ReportUtils.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,6 +1499,7 @@ function buildOptimisticTaskReportAction(taskReportID, actionName, message = '')
14991499
* @param {Boolean} isOwnPolicyExpenseChat
15001500
* @param {String} oldPolicyName
15011501
* @param {String} visibility
1502+
* @param {String} writeCapability
15021503
* @param {String} notificationPreference
15031504
* @param {String} parentReportActionID
15041505
* @param {String} parentReportID
@@ -1514,6 +1515,7 @@ function buildOptimisticChatReport(
15141515
isOwnPolicyExpenseChat = false,
15151516
oldPolicyName = '',
15161517
visibility = undefined,
1518+
writeCapability = CONST.REPORT.WRITE_CAPABILITIES.ALL,
15171519
notificationPreference = CONST.REPORT.NOTIFICATION_PREFERENCE.ALWAYS,
15181520
parentReportActionID = '',
15191521
parentReportID = '',
@@ -1545,6 +1547,7 @@ function buildOptimisticChatReport(
15451547
statusNum: 0,
15461548
visibility,
15471549
welcomeMessage: '',
1550+
writeCapability,
15481551
};
15491552
}
15501553

src/libs/actions/Report.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1198,8 +1198,9 @@ function navigateToConciergeChat() {
11981198
* @param {String} reportName
11991199
* @param {String} visibility
12001200
* @param {Array} policyMembers
1201+
* @param {String} writeCapability
12011202
*/
1202-
function addPolicyReport(policyID, reportName, visibility, policyMembers) {
1203+
function addPolicyReport(policyID, reportName, visibility, policyMembers, writeCapability) {
12031204
// The participants include the current user (admin) and the employees. Participants must not be empty.
12041205
const participants = _.unique([currentUserAccountID, ...policyMembers]);
12051206
const policyReport = ReportUtils.buildOptimisticChatReport(
@@ -1212,6 +1213,7 @@ function addPolicyReport(policyID, reportName, visibility, policyMembers) {
12121213
false,
12131214
'',
12141215
visibility,
1216+
writeCapability,
12151217

12161218
// The room might contain all policy members so notifying always should be opt-in only.
12171219
CONST.REPORT.NOTIFICATION_PREFERENCE.DAILY,
@@ -1278,6 +1280,7 @@ function addPolicyReport(policyID, reportName, visibility, policyMembers) {
12781280
visibility,
12791281
reportID: policyReport.reportID,
12801282
createdReportActionID: createdReportAction.reportActionID,
1283+
writeCapability,
12811284
},
12821285
{optimisticData, successData, failureData},
12831286
);

src/pages/workspace/WorkspaceNewRoomPage.js

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ class WorkspaceNewRoomPage extends React.Component {
8181
/**
8282
* @param {Object} values - form input values passed by the Form component
8383
*/
84-
submit(values) {
85-
const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${values.policyID}`]), (accountID) => Number(accountID));
86-
Report.addPolicyReport(values.policyID, values.roomName, values.visibility, policyMembers);
84+
submit({policyID, roomName, visibility, writeCapability}) {
85+
const policyMembers = _.map(_.keys(this.props.allPolicyMembers[`${ONYXKEYS.COLLECTION.POLICY_MEMBERS}${policyID}`]), (accountID) => Number(accountID));
86+
Report.addPolicyReport(policyID, roomName, visibility, policyMembers, writeCapability);
8787
}
8888

8989
/**
@@ -132,6 +132,11 @@ class WorkspaceNewRoomPage extends React.Component {
132132
return null;
133133
}
134134

135+
const writeCapabilityOptions = _.map(CONST.REPORT.WRITE_CAPABILITIES, (value) => ({
136+
value,
137+
label: this.props.translate(`writeCapabilityPage.writeCapability.${value}`),
138+
}));
139+
135140
// Workspaces are policies with type === 'free'
136141
const workspaceOptions = _.map(
137142
_.filter(this.props.policies, (policy) => policy && policy.type === CONST.POLICY.TYPE.FREE),
@@ -169,7 +174,15 @@ class WorkspaceNewRoomPage extends React.Component {
169174
shouldDelayFocus={shouldDelayFocus}
170175
/>
171176
</View>
172-
<View style={styles.mb5}>
177+
<View style={styles.mb2}>
178+
<Picker
179+
inputID="writeCapability"
180+
label={this.props.translate('writeCapabilityPage.label')}
181+
items={writeCapabilityOptions}
182+
defaultValue={CONST.REPORT.WRITE_CAPABILITIES.ALL}
183+
/>
184+
</View>
185+
<View style={styles.mb2}>
173186
<Picker
174187
inputID="policyID"
175188
label={this.props.translate('workspace.common.workspace')}

0 commit comments

Comments
 (0)