From 6c5e95a1a5d4f4a3fb1028d5e4311932802020e8 Mon Sep 17 00:00:00 2001 From: lucia <51058748+lucia-gomez@users.noreply.github.com> Date: Sun, 2 Jun 2024 18:11:43 -0400 Subject: [PATCH 1/2] email links to Google Site booking tool deploy --- .../routes/booking/hooks/useSubmitBooking.tsx | 2 +- media_commons_booking_app/src/server/admin.ts | 4 ++-- media_commons_booking_app/src/server/index.ts | 6 ++++-- media_commons_booking_app/src/server/ui.ts | 15 ++++++++++++++- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/media_commons_booking_app/src/client/routes/booking/hooks/useSubmitBooking.tsx b/media_commons_booking_app/src/client/routes/booking/hooks/useSubmitBooking.tsx index deffa7ff..0b64e677 100644 --- a/media_commons_booking_app/src/client/routes/booking/hooks/useSubmitBooking.tsx +++ b/media_commons_booking_app/src/client/routes/booking/hooks/useSubmitBooking.tsx @@ -149,7 +149,7 @@ export default function useSubmitBooking(): [ } else { const getApprovalUrl = serverFunctions.approvalUrl(calendarEventId); const getRejectedUrl = serverFunctions.rejectUrl(calendarEventId); - const getBookingToolUrl = serverFunctions.scriptURL(); + const getBookingToolUrl = serverFunctions.getBookingToolDeployUrl(); Promise.all([getApprovalUrl, getRejectedUrl, getBookingToolUrl]).then( (values) => { const userEventInputs: BookingFormDetails = { diff --git a/media_commons_booking_app/src/server/admin.ts b/media_commons_booking_app/src/server/admin.ts index 35b2f1f4..b59f91e8 100644 --- a/media_commons_booking_app/src/server/admin.ts +++ b/media_commons_booking_app/src/server/admin.ts @@ -4,7 +4,7 @@ import { getSecondApproverEmail, } from '../policy'; import { BookingFormDetails, BookingStatusLabel } from '../types'; -import { approvalUrl, rejectUrl, scriptURL } from './ui'; +import { approvalUrl, getBookingToolDeployUrl, rejectUrl } from './ui'; import { fetchById, fetchIndexByUniqueValue, @@ -20,7 +20,7 @@ export const bookingContents = (id: string): BookingFormDetails => { const bookingObj = fetchById(TableNames.BOOKING, id); bookingObj.approvalUrl = approvalUrl(id); bookingObj.rejectedUrl = rejectUrl(id); - bookingObj.bookingToolUrl = scriptURL(); + bookingObj.bookingToolUrl = getBookingToolDeployUrl(); return bookingObj; }; diff --git a/media_commons_booking_app/src/server/index.ts b/media_commons_booking_app/src/server/index.ts index 76d21ebe..8dee8a50 100644 --- a/media_commons_booking_app/src/server/index.ts +++ b/media_commons_booking_app/src/server/index.ts @@ -14,8 +14,9 @@ import { approvalUrl, doGet, getActiveUserEmail, + getBookingToolDeployUrl, rejectUrl, - scriptURL, + scriptUrl, } from './ui'; import { approveBooking, @@ -45,7 +46,8 @@ export { getOldSafetyTrainingEmails, // ui - scriptURL, + getBookingToolDeployUrl, + scriptUrl, approvalUrl, rejectUrl, doGet, diff --git a/media_commons_booking_app/src/server/ui.ts b/media_commons_booking_app/src/server/ui.ts index e5b2b0fd..9fb2c759 100644 --- a/media_commons_booking_app/src/server/ui.ts +++ b/media_commons_booking_app/src/server/ui.ts @@ -1,10 +1,23 @@ import { approveBooking, reject } from './admin'; -export const scriptURL = () => { +import { DevBranch } from '../types'; + +export const scriptUrl = () => { const url = ScriptApp.getService().getUrl(); return url; }; +export const getBookingToolDeployUrl = () => { + switch (process.env.BRANCH_NAME as DevBranch) { + case 'development': + return 'https://sites.google.com/nyu.edu/media-commons-dev/'; + case 'staging': + return 'https://sites.google.com/nyu.edu/media-commons-staging/'; + default: + return 'https://sites.google.com/nyu.edu/media-commons-prod/'; + } +}; + export const approvalUrl = (calendarEventId: string) => { const url = ScriptApp.getService().getUrl(); return `${url}?action=approve&page=admin&calendarEventId=${calendarEventId}`; From 3fb1c4fff086a71b0900256d77f3f0aa9531247f Mon Sep 17 00:00:00 2001 From: Noah Pivnick Date: Tue, 18 Jun 2024 16:40:22 -0400 Subject: [PATCH 2/2] Fix: departmental dropdown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add "MPAP" department to `types.ts` - Add "Other" department to `types.ts` - Edit "Recorded Music" to "CDI" in `types.ts` - Copy Department dropdown code in `UserRolePage.tsx` Department → `Liaisons.tsx` --- .../routes/admin/components/Liaisons.tsx | 32 ++++++++----------- media_commons_booking_app/src/types.ts | 4 ++- media_commons_booking_app/webpack.config.js | 2 +- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/media_commons_booking_app/src/client/routes/admin/components/Liaisons.tsx b/media_commons_booking_app/src/client/routes/admin/components/Liaisons.tsx index f7687718..9e9f0d44 100644 --- a/media_commons_booking_app/src/client/routes/admin/components/Liaisons.tsx +++ b/media_commons_booking_app/src/client/routes/admin/components/Liaisons.tsx @@ -7,6 +7,7 @@ import { formatDate } from '../../../utils/date'; import { getLiaisonTableName } from '../../../../policy'; // This is a wrapper for google.script.run that lets us use promises. import { serverFunctions } from '../../../utils/serverFunctions'; +import { Department } from '../../../../types'; const AddLiaisonForm = ({ liaisonEmails, reloadLiaisonEmails }) => { const [email, setEmail] = useState(''); @@ -64,25 +65,18 @@ const AddLiaisonForm = ({ liaisonEmails, reloadLiaisonEmails }) => { />
- +
{loading ? ( diff --git a/media_commons_booking_app/src/types.ts b/media_commons_booking_app/src/types.ts index 47cc3943..422a9494 100644 --- a/media_commons_booking_app/src/types.ts +++ b/media_commons_booking_app/src/types.ts @@ -55,12 +55,14 @@ export type CalendarEvent = { export enum Department { ALT = 'ALT', + CDI = 'CDI', GAMES = 'Game Center', IDM = 'IDM', ITP = 'ITP / IMA / Low Res', MARL = 'MARL', + MPAP = 'MPAP', MUSIC_TECH = 'Music Tech', - RECORDED_MUSIC = 'Recorded Music', + OTHER = 'Other', } export type DevBranch = 'development' | 'staging' | 'production' | ''; diff --git a/media_commons_booking_app/webpack.config.js b/media_commons_booking_app/webpack.config.js index d84c866d..71daafac 100755 --- a/media_commons_booking_app/webpack.config.js +++ b/media_commons_booking_app/webpack.config.js @@ -301,7 +301,7 @@ const clientConfigs = clientEntrypoints.map((clientEntrypoint) => { }), new HtmlWebpackPlugin({ template: clientEntrypoint.template, - filename: `${clientEntrypoint.filename}${isProd ? '' : '-impl'}.html`, + filename: `${clientEntrypoint.filename}${isProd ? '' : ''}.html`, inlineSource: '^/.*(js|css)$', // embed all js and css inline, exclude packages from dynamic cdn insertion scriptLoading: 'blocking', inject: 'body',