Skip to content

Commit 69383a4

Browse files
devketanproMarkLark86
authored andcommitted
Add Belga user search using credentials to the reassign modal [SDBELGA-770] (superdesk#1919)
* Add Belga user search using credentials to the reassign modal [SDBELGA-770] * fix bootstarp by using removeTabIndexAttribute * fix test * fix e2e * refactore code and update coverageAdvancedModal * removed selectUserInput component * refactore code * add SelectUser stub to superdeskApi * update e2e testcases
1 parent 74735c9 commit 69383a4

File tree

11 files changed

+55
-407
lines changed

11 files changed

+55
-407
lines changed

client/components/Assignments/AssignmentEditor.tsx

+15-10
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import {
1414
Row,
1515
SelectInput,
1616
ColouredValueInput,
17-
SelectUserInput,
1817
} from '../UI/Form';
1918
import {ContactsPreviewList, SelectSearchContactsField} from '../Contacts';
19+
import {superdeskApi} from '../../superdeskApi';
2020

2121
export class AssignmentEditorComponent extends React.Component {
2222
constructor(props) {
@@ -243,6 +243,7 @@ export class AssignmentEditorComponent extends React.Component {
243243
showPriority,
244244
className,
245245
} = this.props;
246+
const {SelectUser} = superdeskApi.components;
246247

247248
return (
248249
<div className={className}>
@@ -297,15 +298,19 @@ export class AssignmentEditorComponent extends React.Component {
297298
/>
298299
</Row>
299300
) : (
300-
<SelectUserInput
301-
field={this.FIELDS.USER}
302-
label={gettext('User')}
303-
value={this.state.user}
304-
onChange={this.onUserChange}
305-
users={this.state.filteredUsers}
306-
popupContainer={popupContainer}
307-
readOnly={disableUserSelection}
308-
/>
301+
<Row style={{padding: '2rem 0', margin: '0 0 1.8em 0'}}>
302+
<div data-test-id={this.FIELDS.USER}>
303+
<SelectUser
304+
selectedUserId = {this.state.userId}
305+
onSelect={(user) => {
306+
this.onUserChange(null, user);
307+
}}
308+
autoFocus={false}
309+
horizontalSpacing={true}
310+
clearable={true}
311+
/>
312+
</div>
313+
</Row>
309314
)}
310315

311316
{showPriority && (

client/components/Assignments/EditCoverageAssignmentModal.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export class EditCoverageAssignmentModalComponent extends React.Component {
7070
show={true}
7171
onHide={handleHide}
7272
fill={false}
73+
removeTabIndexAttribute={true}
7374
>
7475
<Modal.Header>
7576
<h3 className="modal__heading">{gettext('Coverage Assignment Details')}</h3>

client/components/Coverages/CoverageAddAdvancedModal.tsx

+24-14
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import {getUserInterfaceLanguageFromCV} from '../../utils/users';
99
import {getVocabularyItemFieldTranslated} from '../../utils/vocabularies';
1010

1111
import Modal from '../Modal';
12-
import {SelectInput, SelectUserInput} from '../UI/Form';
12+
import {SelectInput} from '../UI/Form';
13+
import {superdeskApi} from '../../superdeskApi';
1314

1415
const isInvalid = (coverage) => coverage.user && !coverage.desk;
1516

@@ -35,7 +36,7 @@ interface ICoverageSelector {
3536
name: IG2ContentType['name'];
3637
icon: string;
3738
desk: IDesk['_id'];
38-
user: IUser['_id'];
39+
user: IUser;
3940
status: IPlanningNewsCoverageStatus;
4041
popupContainer: any;
4142
filteredDesks: Array<IDesk>;
@@ -218,6 +219,7 @@ export class CoverageAddAdvancedModal extends React.Component<IProps, IState> {
218219

219220
render() {
220221
const language = getUserInterfaceLanguageFromCV();
222+
const {SelectUser} = superdeskApi.components;
221223

222224
return (
223225
<Modal
@@ -228,6 +230,7 @@ export class CoverageAddAdvancedModal extends React.Component<IProps, IState> {
228230
event.stopPropagation();
229231
this.props.close();
230232
}}
233+
removeTabIndexAttribute={true}
231234
>
232235
<Modal.Header>
233236
<h3 className="modal__heading">
@@ -276,18 +279,25 @@ export class CoverageAddAdvancedModal extends React.Component<IProps, IState> {
276279
</div>
277280

278281
<div className="grid__item grid__item--col4">
279-
<SelectUserInput
280-
field={'user'}
281-
value={coverage.user}
282-
onChange={(field, value) => this.onUserChange(coverage, value)}
283-
labelField="name"
284-
keyField="_id"
285-
users={coverage.filteredUsers}
286-
clearable={true}
287-
popupContainer={() => coverage.popupContainer}
288-
inline={true}
289-
/>
290-
<div ref={(node) => coverage.popupContainer = node} />
282+
<div
283+
style={
284+
{
285+
margin: '0 0 1.8em 0',
286+
paddingBlockStart: '1.8rem',
287+
position: 'relative'}
288+
}
289+
>
290+
<SelectUser
291+
selectedUserId = {coverage.user?._id}
292+
onSelect={(user) => {
293+
this.onUserChange(coverage, user);
294+
}}
295+
autoFocus={false}
296+
horizontalSpacing={true}
297+
clearable={true}
298+
/>
299+
<div ref={(node) => coverage.popupContainer = node} />
300+
</div>
291301
</div>
292302

293303
<div className="grid__item grid__item--col4">

client/components/ModalWithForm/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ export class ModalWithForm extends React.Component {
101101
fill={fill}
102102
fullscreen={fullscreen}
103103
white={white}
104+
removeTabIndexAttribute={true}
104105
>
105106
<Modal.Header>
106107
<h3 className="modal__heading">{title}</h3>

client/components/UI/Form/SelectUserInput/SelectUserPopup.tsx

-148
This file was deleted.

0 commit comments

Comments
 (0)