chore: Updating embed settings feature tag from Business to Enterprise (#33448)

## Description

- Updating embed settings feature tag from Business to Enterprise
- Also, removing references of "edition" from all over the codebase
- Also, fixing the issue for text input fields not getting cleared on
click of reset button when the old value was a blank string

Fixes [#33450](https://github.com/appsmithorg/appsmith/issues/33450)
[#33449](https://github.com/appsmithorg/appsmith/issues/33449)

## Automation

/ok-to-test tags="@tag.Settings, @tag.Fork, @tag.Workspace"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9094357338>
> Commit: 59f05f374b777778ee39bf1f7078844a50f6a72a
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9094357338&attempt=1"
target="_blank">Click here!</a>

<!-- end of auto-generated comment: Cypress test results  -->
















## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
This commit is contained in:
Ankita Kinger 2024-05-15 17:17:36 +05:30 committed by GitHub
parent 49bf9c64ea
commit a6b8a36d6c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 30 additions and 19 deletions

View File

@ -8,7 +8,7 @@ import {
describe(
"Export application as a JSON file",
{ tags: ["@tag.ExportApplication"] },
{ tags: ["@tag.ImportExport"] },
function () {
let workspaceId, appid;

View File

@ -10,7 +10,7 @@ describe("Private embed in-app ramp", { tags: ["@tag.Settings"] }, () => {
);
_.agHelper.GetNAssertElementText(
_.inviteModal.locators._privateEmbedRampAppSettings,
"To embed private Appsmith apps and seamlessly authenticate users through SSO",
Cypress.env("MESSAGES").IN_APP_EMBED_SETTING.rampSubtextSidebar(),
"contain.text",
);
checkRampLink();
@ -19,7 +19,7 @@ describe("Private embed in-app ramp", { tags: ["@tag.Settings"] }, () => {
_.inviteModal.SelectEmbedTab();
_.agHelper.GetNAssertElementText(
_.inviteModal.locators._privateEmbedRampAppSettings,
"Embed private Appsmith apps and seamlessly authenticate users through SSO in our Business Edition",
Cypress.env("MESSAGES").IN_APP_EMBED_SETTING.rampSubtextModal(),
"contain.text",
);
checkRampLink();
@ -28,7 +28,7 @@ describe("Private embed in-app ramp", { tags: ["@tag.Settings"] }, () => {
cy.get(_.inviteModal.locators._privateEmbedRampLink)
.should("have.attr", "href")
.then((href) => {
expect(href).to.include("customer.appsmith.com");
expect(href).to.include("https://www.appsmith.com/pricing?");
});
}

View File

@ -1923,13 +1923,13 @@ export const IN_APP_EMBED_SETTING = {
"Make your app public by visiting the share settings, and easily embed your Appsmith app into legacy applications",
privateAppsText: () => "Private apps",
rampSubtextModal: () =>
"Embed private Appsmith apps and seamlessly authenticate users through SSO in our Business Edition",
"Embed private Appsmith apps and seamlessly authenticate users through SSO in our Enterprise Edition",
rampSubtextSidebar: () =>
"To embed private Appsmith apps and seamlessly authenticate users through SSO, try our ",
rampLinktext: () => "Try Business",
rampLinktextvariant2: () => "Business Edition",
rampLinktext: () => "Try Enterprise",
rampLinktextvariant2: () => "Enterprise Edition",
upgradeContent: () => "Private embedding is now available in",
appsmithBusinessEdition: () => "Appsmith Business Edition.",
appsmithEnterpriseEdition: () => "Appsmith Enterprise Edition.",
secondaryHeadingForAppSettings: () =>
"Make your app public to embed your Appsmith app into legacy applications",
secondaryHeading: () =>

View File

@ -1,7 +1,10 @@
import { createSelector } from "reselect";
import type { AppState } from "@appsmith/reducers";
import { getAppsmithConfigs } from "@appsmith/configs";
import { CUSTOMER_PORTAL_URL_WITH_PARAMS } from "constants/ThirdPartyConstants";
import {
CUSTOMER_PORTAL_URL_WITH_PARAMS,
PRICING_PAGE_URL,
} from "constants/ThirdPartyConstants";
import {
PRODUCT_RAMPS_LIST,
RAMP_FOR_ROLES,
@ -12,27 +15,33 @@ import {
PERMISSION_TYPE,
} from "@appsmith/utils/permissionHelpers";
const { cloudHosting, customerPortalUrl } = getAppsmithConfigs();
const { cloudHosting, customerPortalUrl, pricingUrl } = getAppsmithConfigs();
const tenantState = (state: AppState) => state.tenant;
const uiState = (state: AppState) => state.ui;
export const getRampLink = ({
feature,
isBusinessFeature = true,
section,
}: {
section: string;
feature: string;
isBusinessFeature?: boolean;
}) =>
createSelector(tenantState, (tenant) => {
const instanceId = tenant?.instanceId;
const source = cloudHosting ? "cloud" : "CE";
const RAMP_LINK_TO = CUSTOMER_PORTAL_URL_WITH_PARAMS(
customerPortalUrl,
source,
instanceId,
);
return `${RAMP_LINK_TO}&feature=${feature}&section=${section}`;
const RAMP_LINK_TO = isBusinessFeature
? CUSTOMER_PORTAL_URL_WITH_PARAMS(
customerPortalUrl,
source,
instanceId,
feature,
section,
)
: PRICING_PAGE_URL(pricingUrl, source, instanceId, feature, section);
return RAMP_LINK_TO;
});
export const showProductRamps = (

View File

@ -14,7 +14,7 @@ const renderComponent = (
input: Partial<WrappedFieldInputProps>;
},
) => {
const value = componentProps.input.value || componentProps.defaultValue;
const value = componentProps.input.value || componentProps.defaultValue || "";
const showError = componentProps.meta.touched && !componentProps.meta.active;
return componentProps.type === SettingSubtype.NUMBER ? (
<NumberInput

View File

@ -18,9 +18,9 @@ import {
getRampLink,
showProductRamps,
} from "@appsmith/selectors/rampSelectors";
import BusinessTag from "components/BusinessTag";
import { FEATURE_FLAG } from "@appsmith/entities/FeatureFlag";
import { useFeatureFlag } from "utils/hooks/useFeatureFlag";
import EnterpriseTag from "components/EnterpriseTag";
function PrivateEmbeddingContent(props: {
userAppPermissions: any[];
@ -51,6 +51,7 @@ export function PrivateEmbedRampModal() {
const rampLinkSelector = getRampLink({
section: RampSection.ShareModal,
feature: RampFeature.PrivateEmbeds,
isBusinessFeature: false,
});
const rampLink = useSelector(rampLinkSelector);
const isPrivateEmbedEnabled = useFeatureFlag(
@ -71,7 +72,7 @@ export function PrivateEmbedRampModal() {
<Text kind="body-m">
{createMessage(IN_APP_EMBED_SETTING.privateAppsText)}
</Text>
<BusinessTag classes="ml-1 mt-0.5" />
<EnterpriseTag classes="ml-1 mt-0.5" />
</div>
<Text
className="w-7/10 block"
@ -99,6 +100,7 @@ export function PrivateEmbedRampSidebar() {
const rampLinkSelector = getRampLink({
section: RampSection.AppSettings,
feature: RampFeature.PrivateEmbeds,
isBusinessFeature: false,
});
const rampLink = useSelector(rampLinkSelector);
const isPrivateEmbedEnabled = useFeatureFlag(