Skip to content

Commit

Permalink
UIU-2942: Assign/unassign a users affiliations adjustments
Browse files Browse the repository at this point in the history
  • Loading branch information
alisher-epam committed Sep 18, 2023
1 parent 04b6c42 commit 692a607
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 27 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
* Add dropdown to specify user type: Patron or Staff. Refs UIU-2936.
* *BREAKING* bump `react-intl` to `v6.4.4`. Refs UIU-2946.
* Generate "Create request" url for users without barcode. Refs UIU-2869.
* Assign/unassign a users affiliations adjustments. Refs UIU-2942.

## [9.0.0](https://github.com/folio-org/ui-users/tree/v9.0.0) (2023-02-20)
[Full Changelog](https://github.com/folio-org/ui-users/compare/v8.1.0...v9.0.0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,16 @@ const AffiliationManagerModal = ({ onClose, onSubmit, userId }) => {
orderBy(
filtersConfig
.reduce((filtered, config) => config.filter(filtered, activeFilters, assignment), tenants)
.filter(({ name }) => (searchQuery ? name.toLowerCase().includes(searchQuery.toLowerCase()) : true)),
.filter(({ name, isCentral, id }) => {
if (isCentral || !affiliationIds.includes(id)) return false;

return (searchQuery ? name.toLowerCase().includes(searchQuery.toLowerCase()) : true);
}),
sorters[sortOrder],
sortDirection.name,
)
);
}, [assignment, filters, sortDirection.name, sortOrder, sorters, tenants]);
}, [affiliationIds, assignment, filters, sortDirection.name, sortOrder, sorters, tenants]);

return (
<Modal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ const useAffiliationsAssignment = ({ affiliations, tenants }) => {
setAssignment(() => {
const affiliationsMap = keyBy(affiliations, 'tenantId');

return tenants.reduce((acc, { id }) => {
acc[id] = Boolean(affiliationsMap[id]);
return tenants.reduce((acc, { id, isCentral }) => {
if (!isCentral) {
acc[id] = Boolean(affiliationsMap[id]);
}

return acc;
}, {});
Expand Down
44 changes: 21 additions & 23 deletions src/views/UserDetail/UserDetail.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,29 +50,22 @@ import {
UserAffiliations,
UserServicePoints,
} from '../../components/UserDetailSections';

import HelperApp from '../../components/HelperApp';
import IfConsortium from '../../components/IfConsortium';
import {
PatronBlockMessage
} from '../../components/PatronBlock';
import {
getFormAddressList,
} from '../../components/data/converters/address';
import {
getFullName,
} from '../../components/util';
import { PatronBlockMessage } from '../../components/PatronBlock';
import { getFormAddressList } from '../../components/data/converters/address';
import { getFullName } from '../../components/util';
import RequestFeeFineBlockButtons from '../../components/RequestFeeFineBlockButtons';
import { departmentsShape } from '../../shapes';

import OpenTransactionModal from './components/OpenTransactionModal';
import DeleteUserModal from './components/DeleteUserModal';
import ExportFeesFinesReportButton from './components';
import ErrorPane from '../../components/ErrorPane';
import ActionMenuEditButton from './components/ActionMenuEditButton';
import ActionMenuDeleteButton from './components/ActionMenuDeleteButton';
import LostItemsLink from '../../components/LostItemsLink';
import IfConsortiumPermission from '../../components/IfConsortiumPermission';
import { USER_TYPES } from '../../constants';
import ActionMenuEditButton from './components/ActionMenuEditButton';
import ActionMenuDeleteButton from './components/ActionMenuDeleteButton';
import OpenTransactionModal from './components/OpenTransactionModal';
import DeleteUserModal from './components/DeleteUserModal';
import ExportFeesFinesReportButton from './components';

class UserDetail extends React.Component {
static propTypes = {
Expand Down Expand Up @@ -621,6 +614,7 @@ class UserDetail extends React.Component {
const userDepartments = (user?.departments || [])
.map(departmentId => departments.find(({ id }) => id === departmentId)?.name);
const accounts = resources?.accounts;
const isAffiliationEnabled = user?.type !== USER_TYPES.PATRON;

if (this.userNotFound()) {
return (
Expand Down Expand Up @@ -702,13 +696,17 @@ class UserDetail extends React.Component {

<IfConsortium>
<IfConsortiumPermission perm="consortia.user-tenants.collection.get">
<UserAffiliations
accordionId="affiliationsSection"
expanded={sections.affiliationsSection}
onToggle={this.handleSectionToggle}
userId={user?.id}
userName={user?.username}
/>
{
isAffiliationEnabled && (
<UserAffiliations
accordionId="affiliationsSection"
expanded={sections.affiliationsSection}
onToggle={this.handleSectionToggle}
userId={user?.id}
userName={user?.username}
/>
)
}
</IfConsortiumPermission>
</IfConsortium>

Expand Down

0 comments on commit 692a607

Please sign in to comment.