Skip to content

Commit d261a23

Browse files
authored
fix: Bunch of fixes and minor changes throughout the app (calcom#23356)
* Bunch of fixes and minor changes throughout the app * remove logs * fix: e2e * fix: e2e * fix: more e2e and design * revert insights upgrade change
1 parent 8b7947a commit d261a23

25 files changed

Lines changed: 300 additions & 195 deletions

File tree

apps/web/app/(use-page-wrapper)/(main-nav)/teams/CTA.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export const TeamsCTA = () => {
1111
data-testid="new-team-btn"
1212
variant="fab"
1313
StartIcon="plus"
14+
size="sm"
1415
type="button"
1516
href={`${WEBAPP_URL}/settings/teams/new?returnTo=${WEBAPP_URL}/teams`}>
1617
{t("new")}

apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,13 +438,15 @@ const TeamListCollapsible = ({ teamFeatures }: { teamFeatures?: Record<number, T
438438
name={t("profile")}
439439
href={`/settings/teams/${team.id}/profile`}
440440
textClassNames="px-3 text-emphasis font-medium text-sm"
441+
className="me-5 h-7 w-auto !px-2"
441442
disableChevron
442443
/>
443444
)}
444445
<VerticalTabItem
445446
name={t("members")}
446447
href={`/settings/teams/${team.id}/members`}
447448
textClassNames="px-3 text-emphasis font-medium text-sm"
449+
className="me-5 h-7 w-auto !px-2"
448450
disableChevron
449451
/>
450452
{/* Show roles only for sub-teams with PBAC-enabled parent */}
@@ -465,6 +467,7 @@ const TeamListCollapsible = ({ teamFeatures }: { teamFeatures?: Record<number, T
465467
name={t("appearance")}
466468
href={`/settings/teams/${team.id}/appearance`}
467469
textClassNames="px-3 text-emphasis font-medium text-sm"
470+
className="me-5 h-7 w-auto !px-2"
468471
disableChevron
469472
/>
470473
{/* Hide if there is a parent ID */}
@@ -474,6 +477,7 @@ const TeamListCollapsible = ({ teamFeatures }: { teamFeatures?: Record<number, T
474477
name={t("billing")}
475478
href={`/settings/teams/${team.id}/billing`}
476479
textClassNames="px-3 text-emphasis font-medium text-sm"
480+
className="me-5 h-7 w-auto !px-2"
477481
disableChevron
478482
/>
479483
</>
@@ -482,6 +486,7 @@ const TeamListCollapsible = ({ teamFeatures }: { teamFeatures?: Record<number, T
482486
name={t("settings")}
483487
href={`/settings/teams/${team.id}/settings`}
484488
textClassNames="px-3 text-emphasis font-medium text-sm"
489+
className="me-5 h-7 w-auto !px-2"
485490
disableChevron
486491
/>
487492
</>
@@ -643,6 +648,7 @@ const SettingsSidebarContainer = ({
643648
name={t("add_a_team")}
644649
href={`${WEBAPP_URL}/settings/teams/new`}
645650
textClassNames="px-3 items-center mt-2 text-emphasis font-medium text-sm"
651+
className="me-5 h-7 w-auto !px-2"
646652
icon="plus"
647653
disableChevron
648654
/>
@@ -744,12 +750,14 @@ const SettingsSidebarContainer = ({
744750
name={t("profile")}
745751
href={`/settings/organizations/teams/other/${otherTeam.id}/profile`}
746752
textClassNames="px-3 text-emphasis font-medium text-sm"
753+
className="me-5 h-7 w-auto !px-2"
747754
disableChevron
748755
/>
749756
<VerticalTabItem
750757
name={t("members")}
751758
href={`/settings/organizations/teams/other/${otherTeam.id}/members`}
752759
textClassNames="px-3 text-emphasis font-medium text-sm"
760+
className="me-5 h-7 w-auto !px-2"
753761
disableChevron
754762
/>
755763
<>

apps/web/components/dialog/__tests__/EditLocationDialog.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ describe("EditLocationDialog", () => {
8181
},
8282
{
8383
value: "integrations:daily",
84-
label: "Cal Video (Global)",
84+
label: "Cal Video (Default)",
8585
disabled: false,
8686
icon: "/app-store/dailyvideo/icon.svg",
8787
slug: "daily-video",

apps/web/modules/signup-view.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ export default function Signup({
426426
id="signup-email"
427427
{...register("email")}
428428
label={t("email")}
429+
placeholder="john@doe.com"
429430
type="email"
430431
autoComplete="email"
431432
disabled={prepopulateFormValues?.email}
@@ -522,8 +523,8 @@ export default function Signup({
522523
usernameTaken
523524
}>
524525
{premiumUsername && !usernameTaken
525-
? `${t("create_account")} (${getPremiumPlanPriceValue()})`
526-
: t("create_account")}
526+
? `${t("get_started")} (${getPremiumPlanPriceValue()})`
527+
: t("get_started")}
527528
</Button>
528529
)}
529530
</Form>

apps/web/playwright/event-types.e2e.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ test.describe("Event Types tests", () => {
239239
await gotoFirstEventType(page);
240240

241241
await page.getByTestId("location-select").click();
242-
await page.locator(`text="Cal Video (Global)"`).click();
242+
await page.locator(`text="Cal Video (Default)"`).click();
243243

244244
await saveEventType(page);
245245
await gotoBookingPage(page);
@@ -282,7 +282,7 @@ test.describe("Event Types tests", () => {
282282
await selectAttendeePhoneNumber(page);
283283

284284
// Add Cal Video location
285-
await addAnotherLocation(page, "Cal Video (Global)");
285+
await addAnotherLocation(page, "Cal Video (Default)");
286286

287287
await saveEventType(page);
288288

@@ -496,6 +496,9 @@ test.describe("Event Types tests", () => {
496496
});
497497
await test.step("should open first eventType and check Interface Language", async () => {
498498
await gotoFirstEventType(page);
499+
// Go to Advanced tab
500+
await page.click("[data-testid=vertical-tab-event_advanced_tab_title]");
501+
await page.click("[data-testid=event-interface-language-toggle]");
499502
const interfaceLanguageValue = page
500503
.getByTestId("event-interface-language")
501504
.locator('div[class$="-singleValue"]');
@@ -518,6 +521,9 @@ test.describe("Event Types tests", () => {
518521

519522
await test.step("should open first eventType and change Interface Language to Deutsche", async () => {
520523
await gotoFirstEventType(page);
524+
// Go to Advanced tab and enable offerSeats
525+
await page.click("[data-testid=vertical-tab-event_advanced_tab_title]");
526+
await page.click("[data-testid=event-interface-language-toggle]");
521527
await page.getByTestId("event-interface-language").click();
522528
await page.locator(`text="Deutsch"`).click();
523529
await saveEventType(page);
@@ -574,6 +580,9 @@ test.describe("Event Types tests", () => {
574580
await page.goto("/event-types");
575581
await page.waitForSelector('[data-testid="event-types"]');
576582
await gotoFirstEventType(page);
583+
// Go to Advanced tab and enable offerSeats
584+
await page.click("[data-testid=vertical-tab-event_advanced_tab_title]");
585+
await page.click("[data-testid=event-interface-language-toggle]");
577586
await page.getByTestId("event-interface-language").click();
578587
await page.getByTestId("select-option-es").click();
579588
await saveEventType(page);

apps/web/playwright/filter-helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export async function expectSegmentCleared(page: Page) {
198198
// Check that no segment is selected (button shows default text)
199199
const segmentSelect = page.getByTestId("filter-segment-select");
200200
const buttonText = await segmentSelect.textContent();
201-
expect(buttonText?.trim()).toEqual("Segment");
201+
expect(buttonText?.trim()).toEqual("Saved filters");
202202
}
203203

204204
/**

apps/web/playwright/fixtures/regularBookings.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ export function createBookingPageFixture(page: Page) {
199199
await expect(eventTypePage.getByTestId("time")).toHaveCount(count);
200200
},
201201
getAITranslationToggleDisabled: async () => {
202+
await page.click("[data-testid=vertical-tab-event_advanced_tab_title]");
202203
await page.waitForSelector('[data-testid="ai_translation_toggle"]', {
203204
timeout: 5000,
204205
state: "attached",
@@ -207,6 +208,7 @@ export function createBookingPageFixture(page: Page) {
207208
return (await toggle.getAttribute("disabled")) !== null;
208209
},
209210
toggleAITranslation: async () => {
211+
await page.click("[data-testid=vertical-tab-event_advanced_tab_title]");
210212
await page.getByTestId("ai_translation_toggle").click();
211213
},
212214
updateEventTypeDescription: async (description: string) => {

apps/web/playwright/managed-event-types.e2e.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,13 @@ test.describe("Managed Event Types", () => {
8181
await page.goto(`/event-types/${managedEvent.id}?tabName=setup`);
8282
await expect(page.getByTestId("vertical-tab-basics")).toHaveAttribute("aria-current", "page"); // fix the race condition
8383
await expect(page.getByTestId("vertical-tab-basics")).toContainText("Basics"); //fix the race condition
84+
8485
await page.locator("#location-select").click();
85-
const optionText = await getByKey(page, "organizer_default_conferencing_app");
86-
await expect(optionText).toBeVisible();
87-
await optionText.click();
86+
const targetText = (await localize("en"))("organizer_default_conferencing_app");
87+
const options = page.locator('[data-testid="location-select-item-conferencing"]');
88+
const targetOption = options.locator(`text=${targetText}`);
89+
await expect(targetOption).toBeVisible();
90+
await targetOption.click();
8891
await saveAndWaitForResponse(page);
8992

9093
await page.getByTestId("vertical-tab-assignment").click();
@@ -190,7 +193,7 @@ test.describe("Managed Event Types", () => {
190193
});
191194

192195
const MANAGED_EVENT_TABS: { slug: string; locator: (page: Page) => Locator | Promise<Locator> }[] = [
193-
{ slug: "setup", locator: (page) => getByKey(page, "translate_description_button") },
196+
{ slug: "setup", locator: (page) => getByKey(page, "allow_multiple_durations") },
194197
{
195198
slug: "team",
196199
locator: (page) => getByKey(page, "automatically_add_all_team_members"),

apps/web/public/static/locales/en/common.json

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@
321321
"secret_meeting": "Secret Meeting",
322322
"login_instead": "Login instead",
323323
"create_account": "Create Account",
324+
"get_started": "Get started",
324325
"confirm_password": "Confirm password",
325326
"reset_your_password": "Set your new password with the instructions sent to your email address.",
326327
"org_banner_instructions": "Please upload image of {{width}} width and {{height}} height.",
@@ -958,7 +959,7 @@
958959
"light_event_type_color": "Event Type Color (Light Theme)",
959960
"dark_event_type_color": "Event Type Color (Dark Theme)",
960961
"file_not_named": "File is not named [idOrSlug]/[user]",
961-
"create_team": "Create Team",
962+
"create_team": "Create team",
962963
"name": "Name",
963964
"nameless_team": "Nameless Team",
964965
"oauth_clients": "OAuth Clients",
@@ -1019,6 +1020,7 @@
10191020
"attendees": "Attendees",
10201021
"add_attendees": "Add attendees",
10211022
"show_advanced_settings": "Show advanced settings",
1023+
"hide_advanced_settings": "Hide advanced settings",
10221024
"event_name": "Event Name",
10231025
"event_name_in_calendar": "Calendar event name",
10241026
"event_name_tooltip": "The name that will appear in calendars",
@@ -1231,7 +1233,7 @@
12311233
"contact_sales": "Contact Sales",
12321234
"error_404": "Error 404",
12331235
"default": "Default",
1234-
"set_to_default": "Set to Default",
1236+
"set_to_default": "Set as Default",
12351237
"new_schedule_btn": "New schedule",
12361238
"add_new_schedule": "Add a new schedule",
12371239
"add_new_calendar": "Add a new calendar",
@@ -1329,7 +1331,7 @@
13291331
"make_team_private_description": "Your team members won't be able to see other team members when this is turned on.",
13301332
"you_cannot_see_team_members": "You cannot see all the team members of a private team.",
13311333
"you_cannot_see_teams_of_org": "You cannot see teams of a private organization.",
1332-
"allow_booker_to_select_duration": "Allow booker to select from multiple durations",
1334+
"allow_multiple_durations": "Allow multiple durations",
13331335
"impersonate_user_tip": "All uses of this feature is audited.",
13341336
"impersonating_user_warning": "Impersonating username \"{{user}}\".",
13351337
"impersonating_stop_instructions": "Click here to stop",
@@ -2689,7 +2691,7 @@
26892691
"enterprise": "Enterprise",
26902692
"enterprise_description": "Upgrade to Enterprise to create your Organization",
26912693
"create_your_org": "Create your Organization",
2692-
"create_org": "Create Organization",
2694+
"create_org": "Create organization",
26932695
"create_your_org_description": "Upgrade to Organizations and receive a subdomain, unified billing, Insights, extensive whitelabeling and more",
26942696
"create_your_enterprise_description": "Upgrade to Enterprise and get access to Active Directory Sync, SCIM Automatic User provisioning, Cal.ai Voice Agents, Admin APIs and more!",
26952697
"other_payment_app_enabled": "You can only enable one payment app per event type",
@@ -2923,6 +2925,7 @@
29232925
"proceeding_agreement": "By proceeding, you agree to our",
29242926
"terms": "Terms",
29252927
"always_show_x_days": "Always {{x}} days available",
2928+
"always_show_x_days_description": "Automatically moves the {{x}}-day booking window forward each day, ensuring your calendar always shows the next {{x}} days of available slots.",
29262929
"team_subscription_cancelled_successfully": "Team subscription cancelled successfully",
29272930
"team_subscription_cancellation_error": "Error while cancelling the team subscription",
29282931
"unable_to_subscribe_to_the_platform": "An error occurred while trying to subscribe to the platform plan, please try again later",
@@ -3144,7 +3147,8 @@
31443147
"filter_operator_ends_with": "Ends with",
31453148
"filter_operator_is_empty": "Is empty",
31463149
"filter_operator_not_empty": "Not empty",
3147-
"translate_description_button": "Translate title/description to the visitor's browser language using AI",
3150+
"translate_description_button": "Auto translate title and description",
3151+
"translate_description_button_description": "Automatically translate titles and descriptions to the visitor’s browser language using AI.",
31483152
"rr_distribution_method": "Distribution",
31493153
"rr_distribution_method_description": "Allows for optimising distribution for maximum availability or to aim for a more balanced assignment.",
31503154
"rr_distribution_method_availability_title": "Maximize availability",
@@ -3310,6 +3314,7 @@
33103314
"seats_doesnt_support_recurring": "Seats feature doesn't support recurring event. Disable seats feature to make it recurring.",
33113315
"recurring_event_seats_error": "Recurring event doesn't support seats feature. Disable seats feature or make the event non-recurring.",
33123316
"segment": "Segment",
3317+
"saved_filters": "Saved filters",
33133318
"rename": "Rename",
33143319
"rename_segment": "Rename Segment",
33153320
"delete_segment": "Delete Segment",
@@ -3339,6 +3344,7 @@
33393344
"picklist": "Picklist",
33403345
"most_cancelled_bookings": "Most Cancelled",
33413346
"interface_language": "Interface Language",
3347+
"interface_language_description": "Set your preferred language for the booking interface",
33423348
"visitors_browser_language": "Visitor's browser language",
33433349
"name_or_email": "Name or Email",
33443350
"salesforce_round_robin_skip_fallback_to_lead_owner": "If no contact is found, fallback to lead owner if it exists",
@@ -3571,8 +3577,8 @@
35713577
"rr_load_balancing_disabled_with_groups": "Load Balancing is not available with Round Robin Groups",
35723578
"round_robin_settings_description": "Customize the default round robin settings for this team",
35733579
"round_robin_settings_updated_successfully": "Round Robin settings updated successfully",
3574-
"booking_creation_time": "Booking Creation Time",
3575-
"meeting_start_time": "Meeting Start Time",
3580+
"booking_creation_time": "Booking creation time",
3581+
"meeting_start_time": "Meeting start time",
35763582
"members_affected_by_disabling_delegation_credential": "Affected members",
35773583
"no_members_affected_by_disabling_delegation_credential": "No members affected by disabling delegation credential",
35783584
"download_expense_log": "Download Expense Log",

packages/app-store/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function getApps(credentials: CredentialDataWithTeamName[], filterOnCredentials?
6868
delegatedToId: null,
6969
delegationCredentialId: null,
7070
team: {
71-
name: "Global",
71+
name: "Default",
7272
},
7373
};
7474
logger.debug(

0 commit comments

Comments
 (0)