Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #1155

Merged
merged 15 commits into from
Jun 11, 2024
Merged

Develop #1155

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion src/components/List/Events/List.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { eventStatus } from '../../../constants/eventStatus';
import moment from 'moment-timezone';
import { LinkOutlined, StarFilled } from '@ant-design/icons';
import { sameAsTypes } from '../../../constants/sameAsTypes';
import { getWidthFromAspectRatio } from '../../../utils/getWidthFromAspectRatio';

const { useBreakpoint } = Grid;

Expand Down Expand Up @@ -48,6 +49,20 @@ function Lists(props) {
};
const aspectRatioString = currentCalendarData?.imageConfig[0]?.thumbnail?.aspectRatio;

const calculateImageDimensions = (aspectRatio, fixedHeight, maxWidth) => {
let width = getWidthFromAspectRatio(aspectRatio, fixedHeight);
let height = fixedHeight;

if (width > maxWidth) {
width = maxWidth;
height = (maxWidth * aspectRatio.split(':')[1]) / aspectRatio.split(':')[0];
}

return { width, height };
};

let imageDimensions = calculateImageDimensions(aspectRatioString, 104, 150);

const listItemHandler = (id, creatorId, publishState) => {
if (routinghandler(user, calendarId, creatorId, publishState, false, isReadOnly))
navigate(`${location.pathname}${PathName.AddEvent}/${id}`);
Expand Down Expand Up @@ -168,7 +183,8 @@ function Lists(props) {
(calendar[0]?.role === userRoles.ADMIN || user?.isSuperAdmin) &&
eventItem?.isFeatured &&
'3px solid #1B3DE6',
...(aspectRatioString && { maxWidth: '150px' }),
width: `${imageDimensions.width}px`,
height: `${imageDimensions.height}px`,
}}
data-cy="image-event-thumbnail"
/>
Expand Down
14 changes: 4 additions & 10 deletions src/components/Sidebar/Main/Sidebar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import { useSelector } from 'react-redux';
import { getUserDetails } from '../../../redux/reducer/userSlice';
import { clearSessionStoredSearchQueries } from '../../../utils/clearSessionStoredSearchQueries';
import { calendarModes } from '../../../constants/calendarModes';
import { userRoles } from '../../../constants/userRoles';
import { adminCheckHandler } from '../../../utils/adminCheckHandler';
import { getCurrentCalendarDetailsFromUserDetails } from '../../../utils/getCurrentCalendarDetailsFromUserDetails';

const { Sider } = Layout;

Expand All @@ -29,14 +30,7 @@ function Sidebar(props) {
const [selectedKey, setSelectedKey] = useState([]);
const calendarContentLanguage = currentCalendarData?.contentLanguage;

const calendar = user?.roles.filter((calendar) => {
return calendar.calendarId === calendarId;
});

const adminCheckHandler = () => {
if (calendar[0]?.role === userRoles.ADMIN || user?.isSuperAdmin) return true;
else return false;
};
const calendar = getCurrentCalendarDetailsFromUserDetails(user, calendarId);

const items = sidebarItems.map((item, index) => {
const key = String(index + 1);
Expand All @@ -49,7 +43,7 @@ function Sidebar(props) {
disabled: item.disabled,
};
if (item.adminOnly) {
if (adminCheckHandler()) return itemJson;
if (adminCheckHandler({ calendar, user })) return itemJson;
} else return itemJson;
});

Expand Down
16 changes: 6 additions & 10 deletions src/components/Sidebar/Responsive/ResponsiveSidebar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ import CalendarList from '../../Dropdown/Calendar';
import { contentLanguageBilingual } from '../../../utils/bilingual';
import i18n from 'i18next';
import { calendarModes } from '../../../constants/calendarModes';
import { userRoles } from '../../../constants/userRoles';
import { handleLogout } from '../../../hooks/useAuth';
import { adminCheckHandler } from '../../../utils/adminCheckHandler';
import { getCurrentCalendarDetailsFromUserDetails } from '../../../utils/getCurrentCalendarDetailsFromUserDetails';

function ResponsiveSidebar(props) {
const { allCalendarsData, currentCalendarData, onClose, open, pageNumber, setPageNumber } = props;
Expand All @@ -37,14 +38,7 @@ function ResponsiveSidebar(props) {
icon: item.icon,
};
});
const calendar = user?.roles.filter((calendar) => {
return calendar.calendarId === calendarId;
});

const adminCheckHandler = () => {
if (calendar[0]?.role === userRoles.ADMIN || user?.isSuperAdmin) return true;
else return false;
};
const calendar = getCurrentCalendarDetailsFromUserDetails(user, calendarId);

const itemsOptions = sidebarItems.map((item, index) => {
const key = String(index + 1);
Expand All @@ -57,7 +51,7 @@ function ResponsiveSidebar(props) {
disabled: item.disabled,
};
if (item.adminOnly) {
if (adminCheckHandler()) return itemJson;
if (adminCheckHandler({ calendar, user })) return itemJson;
} else return itemJson;
});
const selectedCalendar = (id, uri, label = '') => {
Expand All @@ -68,8 +62,10 @@ function ResponsiveSidebar(props) {
<img
style={{
width: '32px',
minWidth: '32px',
height: '32px',
borderRadius: '73px',
objectFit: 'contain',
}}
src={uri}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { useParams } from 'react-router-dom';
import { useSelector } from 'react-redux';
import { getUserDetails } from '../../redux/reducer/userSlice';
import { userRoles } from '../../constants/userRoles';
import { getCurrentCalendarDetailsFromUserDetails } from '../../utils/getCurrentCalendarDetailsFromUserDetails';

function ReadOnlyProtectedComponent({ children, creator, entityId, isReadOnly }) {
let { calendarId } = useParams();
Expand All @@ -12,9 +13,7 @@ function ReadOnlyProtectedComponent({ children, creator, entityId, isReadOnly })
return children;
}

const calendar = user?.roles.filter((calendar) => {
return calendar.calendarId === calendarId;
});
const calendar = getCurrentCalendarDetailsFromUserDetails(user, calendarId);

if (entityId) {
user?.roles.forEach((calendar) => {
Expand Down
43 changes: 21 additions & 22 deletions src/pages/Dashboard/AddEvent/AddEvent.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ import {
} from '../../../redux/reducer/languageLiteralSlice';
import { removeUneditedFallbackValues } from '../../../utils/removeUneditedFallbackValues';
import { groupEventsByDate } from '../../../utils/groupSubEventsConfigByDate';
import { adminCheckHandler } from '../../../utils/adminCheckHandler';
import { getCurrentCalendarDetailsFromUserDetails } from '../../../utils/getCurrentCalendarDetailsFromUserDetails';

const { TextArea } = Input;

Expand Down Expand Up @@ -236,9 +238,7 @@ function AddEvent() {

let artsDataLink = eventData?.sameAs?.filter((item) => item?.type === sameAsTypes.ARTSDATA_IDENTIFIER);

const calendar = user?.roles.filter((calendar) => {
return calendar.calendarId === calendarId;
});
const calendar = getCurrentCalendarDetailsFromUserDetails(user, calendarId);

let organizerPerformerSupporterTypes = {
organizer: 'organizer',
Expand Down Expand Up @@ -1238,11 +1238,6 @@ function AddEvent() {
}
};

const adminCheckHandler = () => {
if (calendar[0]?.role === userRoles.ADMIN || user?.isSuperAdmin) return true;
else return false;
};

const organizerPerformerSupporterPlaceNavigationHandler = (id, type, event) => {
saveAsDraftHandler(event, true, eventPublishState.DRAFT)
.then((savedEventId) => {
Expand Down Expand Up @@ -1961,7 +1956,7 @@ function AddEvent() {
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.NAME) ||
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.NAME_EN) ||
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.NAME_FR)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -2054,7 +2049,7 @@ function AddEvent() {
})}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.EVENT_TYPE)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -2102,7 +2097,7 @@ function AddEvent() {
}}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.AUDIENCE)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -2153,13 +2148,17 @@ function AddEvent() {
})}
initialValue={
dynamicAdminOnlyFields?.includes(taxonomy?.id)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? initialValues
: []
: initialValues
}
hidden={
dynamicAdminOnlyFields?.includes(taxonomy?.id) ? (adminCheckHandler() ? false : true) : false
dynamicAdminOnlyFields?.includes(taxonomy?.id)
? adminCheckHandler({ calendar, user })
? false
: true
: false
}
data-cy={`form-item-${taxonomy?.id}`}
rules={[
Expand Down Expand Up @@ -2196,7 +2195,7 @@ function AddEvent() {
</>
<div>
{standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.FEATURED)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? FeaturedJSX
: null
: FeaturedJSX}
Expand Down Expand Up @@ -2240,7 +2239,7 @@ function AddEvent() {
}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.START_DATE)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -2332,7 +2331,7 @@ function AddEvent() {
}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.START_DATE)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -2487,7 +2486,7 @@ function AddEvent() {
label={t('dashboard.events.addEditEvent.location.title')}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.LOCATION)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -2838,7 +2837,7 @@ function AddEvent() {
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.DESCRIPTION) ||
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.DESCRIPTION_EN) ||
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.DESCRIPTION_FR)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -3445,7 +3444,7 @@ function AddEvent() {
required={requiredFieldNames?.includes(eventFormRequiredFieldNames?.IMAGE)}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.IMAGE)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -4172,7 +4171,7 @@ function AddEvent() {
marginResponsive="0px"
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.EVENT_ACCESSIBILITY)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -4200,7 +4199,7 @@ function AddEvent() {
]}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.EVENT_ACCESSIBILITY)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down Expand Up @@ -4338,7 +4337,7 @@ function AddEvent() {
required={requiredFieldNames?.includes(eventFormRequiredFieldNames?.TICKET_INFO)}
hidden={
standardAdminOnlyFields?.includes(eventFormRequiredFieldNames?.TICKET_INFO)
? adminCheckHandler()
? adminCheckHandler({ calendar, user })
? false
: true
: false
Expand Down
14 changes: 6 additions & 8 deletions src/pages/Dashboard/AddTaxonomy/AddTaxonomy.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import BilingualInput from '../../../components/BilingualInput';
import { contentLanguage } from '../../../constants/contentLanguage';
import SearchableCheckbox from '../../../components/Filter/SearchableCheckbox';
import { DownOutlined, PlusOutlined } from '@ant-design/icons';
import { userRoles, userRolesWithTranslation } from '../../../constants/userRoles';
import { userRolesWithTranslation } from '../../../constants/userRoles';
import DraggableTree from '../../../components/DraggableTree/DraggableTree';
import Outlined from '../../../components/Button/Outlined';
import { useDispatch, useSelector } from 'react-redux';
Expand All @@ -26,6 +26,8 @@ import { Prompt } from '../../../hooks/usePrompt';
import { compareArraysOfObjects } from '../../../utils/genericObjectCompare';
import { PathName } from '../../../constants/pathName';
import StyledSwitch from '../../../components/Switch/StyledSwitch';
import { adminCheckHandler } from '../../../utils/adminCheckHandler';
import { getCurrentCalendarDetailsFromUserDetails } from '../../../utils/getCurrentCalendarDetailsFromUserDetails';

const taxonomyClasses = taxonomyClassTranslations.map((item) => {
return { ...item, value: item.key };
Expand All @@ -52,12 +54,7 @@ const AddTaxonomyTest = () => {
const dispatch = useDispatch();

const calendarContentLanguage = currentCalendarData?.contentLanguage;
const calendar = user?.roles.filter((calendar) => {
return calendar.calendarId === calendarId;
});
const adminCheckHandler = () => {
return calendar[0]?.role === userRoles.ADMIN || user?.isSuperAdmin;
};
const calendar = getCurrentCalendarDetailsFromUserDetails(user, calendarId);

const taxonomyId = searchParams.get('id');
setContentBackgroundColor('#F9FAFF');
Expand Down Expand Up @@ -100,7 +97,8 @@ const AddTaxonomyTest = () => {

useEffect(() => {
if (user && calendar.length > 0) {
!adminCheckHandler() && dispatch(setErrorStates({ errorCode: '403', isError: true, message: 'Not Authorized' }));
!adminCheckHandler({ calendar, user }) &&
dispatch(setErrorStates({ errorCode: '403', isError: true, message: 'Not Authorized' }));
}
}, [user, calendar]);

Expand Down
14 changes: 5 additions & 9 deletions src/pages/Dashboard/AddUser/AddUser.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import CalendarAccordion from '../../../components/Accordion/CalendarAccordion';
import { removeObjectArrayDuplicates } from '../../../utils/removeObjectArrayDuplicates';
import Select from '../../../components/Select';
import Cookies from 'js-cookie';
import { adminCheckHandler } from '../../../utils/adminCheckHandler';

const AddUser = () => {
const navigate = useNavigate();
Expand Down Expand Up @@ -103,7 +104,7 @@ const AddUser = () => {

useEffect(() => {
if (userId !== user?.id) {
!adminCheckHandler() &&
!adminCheckHandler({ calendar, user }) &&
dispatch(setErrorStates({ errorCode: '403', isError: true, message: 'Forbidden resource.' }));
} else {
setIsCurrentUser(true);
Expand Down Expand Up @@ -258,11 +259,6 @@ const AddUser = () => {
});
};

const adminCheckHandler = () => {
if (calendar[0]?.role === userRoles.ADMIN || user?.isSuperAdmin) return true;
else return false;
};

const onSaveHandler = () => {
if (!userId) {
formInstance
Expand Down Expand Up @@ -325,7 +321,7 @@ const AddUser = () => {
return { entityId: organizer?.value };
});
let userType = values?.userType[calendarId];
if (isCurrentUser && adminCheckHandler() == false) {
if (isCurrentUser && adminCheckHandler({ calendar, user }) == false) {
updateCurrentUser({
calendarId,
body: {
Expand Down Expand Up @@ -404,7 +400,7 @@ const AddUser = () => {
icon: <ExclamationCircleOutlined />,
});
});
} else if (adminCheckHandler()) {
} else if (adminCheckHandler({ calendar, user })) {
updateUserById({
id: userId,
calendarId,
Expand Down Expand Up @@ -886,7 +882,7 @@ const AddUser = () => {
calendarContentLanguage: calendarContentLanguage,
})}
role={calendar?.role}
readOnly={adminCheckHandler() ? false : true}
readOnly={adminCheckHandler({ calendar, user }) ? false : true}
disabled={calendar?.disabled}
organizationIds={calendar?.organizations}
peopleIds={calendar?.people}
Expand Down
Loading
Loading