Skip to content

Commit

Permalink
Use instanceId param for ILR from items response
Browse files Browse the repository at this point in the history
  • Loading branch information
artem-blazhko committed Oct 7, 2024
1 parent 9fdbd0d commit 4c551f3
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 30 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
* Add sorting to 'Printed' and '# Copies' columns in the Request App. Refs UIREQ-1140.
* Implement "Print Status" filters as server-side filters. Refs UIREQ-1147.
* Navigate to first page when saving the pick slip print log from beyond the first page. Refs UIREQ-1145.
* Use `instanceId` param for ILR from items response. Refs UIREQ-1149.

## [9.1.2] (https://github.com/folio-org/ui-requests/tree/v9.1.2) (2024-09-13)
[Full Changelog](https://github.com/folio-org/ui-requests/compare/v9.1.1...v9.1.2)
Expand Down
24 changes: 14 additions & 10 deletions src/RequestForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,6 @@ class RequestForm extends React.Component {
values: PropTypes.object.isRequired,
form: PropTypes.object.isRequired,
blocked: PropTypes.bool.isRequired,
instanceId: PropTypes.string.isRequired,
isPatronBlocksOverridden: PropTypes.bool.isRequired,
onSubmit: PropTypes.func,
parentMutator: PropTypes.shape({
Expand All @@ -160,7 +159,6 @@ class RequestForm extends React.Component {
onSetSelectedInstance: PropTypes.func.isRequired,
onSetBlocked: PropTypes.func.isRequired,
onSetIsPatronBlocksOverridden: PropTypes.func.isRequired,
onSetInstanceId: PropTypes.func.isRequired,
};

static defaultProps = {
Expand Down Expand Up @@ -717,22 +715,21 @@ class RequestForm extends React.Component {
findItemRelatedResources(item) {
const {
findResource,
onSetInstanceId,
} = this.props;
if (!item) return null;

if (!item) {
return null;
}

return Promise.all(
[
findResource('loan', item.id),
findResource('requestsForItem', item.id),
findResource(RESOURCE_TYPES.HOLDING, item.holdingsRecordId),
],
).then((results) => {
const selectedLoan = results[0]?.loans?.[0];
const itemRequestCount = results[1]?.requests?.length;
const holdingsRecord = results[2]?.holdingsRecords?.[0];

onSetInstanceId(holdingsRecord?.instanceId);
this.setState({
itemRequestCount,
selectedLoan,
Expand Down Expand Up @@ -811,6 +808,11 @@ class RequestForm extends React.Component {

return foundItem;
})
.catch(() => {
onSetSelectedItem(null);

return null;
})
.then(item => {
if (item && selectedUser?.id) {
const requester = getRequester(proxy, selectedUser);
Expand Down Expand Up @@ -888,6 +890,11 @@ class RequestForm extends React.Component {

return instance;
})
.catch(() => {
onSetSelectedInstance(null);

return null;
})
.then(instance => {
if (instance && selectedUser?.id) {
const requester = getRequester(proxy, selectedUser);
Expand Down Expand Up @@ -1093,7 +1100,6 @@ class RequestForm extends React.Component {
selectedUser,
selectedInstance,
isPatronBlocksOverridden,
instanceId,
blocked,
values,
onCancel,
Expand Down Expand Up @@ -1283,7 +1289,6 @@ class RequestForm extends React.Component {
onSetSelectedInstance={onSetSelectedInstance}
isLoading={isItemOrInstanceLoading}
instanceRequestCount={instanceRequestCount}
instanceId={instanceId}
/>
</div>
</Accordion>
Expand All @@ -1305,7 +1310,6 @@ class RequestForm extends React.Component {
onSetSelectedItem={onSetSelectedItem}
values={values}
itemRequestCount={itemRequestCount}
instanceId={instanceId}
selectedLoan={selectedLoan}
isLoading={isItemOrInstanceLoading}
/>
Expand Down
9 changes: 1 addition & 8 deletions src/RequestFormContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ const RequestFormContainer = ({
const [selectedUser, setSelectedUser] = useState({ ...requester, id: requesterId });
const [selectedInstance, setSelectedInstance] = useState(request?.instance);
const [isPatronBlocksOverridden, setIsPatronBlocksOverridden] = useState(false);
const [instanceId, setInstanceId] = useState('');
const [blocked, setBlocked] = useState(false);

const setItem = (optedItem) => {
Expand All @@ -62,10 +61,6 @@ const RequestFormContainer = ({
setIsPatronBlocksOverridden(value);
};

const setStateInstanceId = (id) => {
setInstanceId(id);
};

const getPatronManualBlocks = (resources) => {
return (resources?.patronBlocks?.records || [])
.filter(b => b.requests === true)
Expand Down Expand Up @@ -142,7 +137,7 @@ const RequestFormContainer = ({
};
}

requestData.instanceId = request?.instanceId || instanceId || selectedInstance?.id;
requestData.instanceId = request?.instanceId || selectedInstance?.id || selectedItem?.instanceId;
requestData.requestLevel = request?.requestLevel || getRequestLevelValue(requestData.createTitleLevelRequest);

if (requestData.requestLevel === REQUEST_LEVEL_TYPES.ITEM) {
Expand Down Expand Up @@ -179,15 +174,13 @@ const RequestFormContainer = ({
selectedUser={selectedUser}
selectedInstance={selectedInstance}
isPatronBlocksOverridden={isPatronBlocksOverridden}
instanceId={instanceId}
onGetPatronManualBlocks={getPatronManualBlocks}
onGetAutomatedPatronBlocks={getAutomatedPatronBlocks}
onSetBlocked={setIsBlocked}
onSetSelectedItem={setItem}
onSetSelectedUser={setUser}
onSetSelectedInstance={setInstance}
onSetIsPatronBlocksOverridden={setStateIsPatronBlocksOverridden}
onSetInstanceId={setStateInstanceId}
onSubmit={handleSubmit}
/>
);
Expand Down
4 changes: 1 addition & 3 deletions src/components/InstanceInformation/InstanceInformation.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ class InstanceInformation extends Component {
values: PropTypes.object.isRequired,
onSetSelectedInstance: PropTypes.func.isRequired,
isLoading: PropTypes.bool.isRequired,
instanceId: PropTypes.string.isRequired,
request: PropTypes.object,
instanceRequestCount: PropTypes.number,
selectedInstance: PropTypes.object,
Expand Down Expand Up @@ -159,7 +158,6 @@ class InstanceInformation extends Component {
values,
isLoading,
instanceRequestCount,
instanceId,
} = this.props;
const {
isInstanceClicked,
Expand Down Expand Up @@ -247,7 +245,7 @@ class InstanceInformation extends Component {
{
isTitleInfoVisible &&
<TitleInformation
instanceId={request?.instanceId || selectedInstance.id || instanceId}
instanceId={request?.instanceId || selectedInstance.id}
titleLevelRequestsCount={titleLevelRequestsCount}
title={selectedInstance.title}
contributors={selectedInstance.contributors || selectedInstance.contributorNames}
Expand Down
4 changes: 1 addition & 3 deletions src/components/ItemInformation/ItemInformation.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ class ItemInformation extends Component {
request: PropTypes.object.isRequired,
onSetSelectedItem: PropTypes.func.isRequired,
itemRequestCount: PropTypes.number.isRequired,
instanceId: PropTypes.string.isRequired,
isLoading: PropTypes.bool.isRequired,
submitting: PropTypes.bool.isRequired,
isItemIdRequest: PropTypes.bool.isRequired,
Expand Down Expand Up @@ -162,7 +161,6 @@ class ItemInformation extends Component {
isLoading,
selectedItem,
request,
instanceId,
selectedLoan,
itemRequestCount,
} = this.props;
Expand Down Expand Up @@ -235,7 +233,7 @@ class ItemInformation extends Component {
selectedItem &&
<ItemDetail
request={request}
currentInstanceId={instanceId}
currentInstanceId={selectedItem.instanceId}
item={selectedItem}
loan={selectedLoan}
requestCount={itemRequestCount}
Expand Down
1 change: 0 additions & 1 deletion src/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,6 @@ export const RESOURCE_TYPES = {
ITEM: 'item',
INSTANCE: 'instance',
USER: 'user',
HOLDING: 'holding',
REQUEST_TYPES: 'requestTypes',
ECS_TLR_SETTINGS: 'ecsTlrSettings',
};
Expand Down
5 changes: 0 additions & 5 deletions src/routes/RequestsRoute.js
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,6 @@ export const urls = {

return `request-preference-storage/request-preference?${query}`;
},
holding: (value, idType) => {
const query = stringify({ query: `(${idType}=="${value}")` });

return `holdings-storage/holdings?${query}`;
},
requestTypes: ({
requesterId,
itemId,
Expand Down

0 comments on commit 4c551f3

Please sign in to comment.