From 5fc8a1683e89a45be08118cf1051c34969884477 Mon Sep 17 00:00:00 2001 From: Abby Hu Date: Tue, 31 Aug 2021 05:19:09 +0000 Subject: [PATCH] Branding configs rename and improvement Change config smallLogoUrl to logoUrl, config logoUrl to fullLogoUrl to emphasize that thumbnail version of the logo will be used mostly in the application. Full version of the logo will only be used on the main page nav bar. If full logo is not provided, thumbnail logo will be used on the nav bar. Some config improvement includes fixing the validation error when inputting empty string, and add title validation function. Signed-off-by: Abby Hu --- config/opensearch_dashboards.yml | 4 +- .../header/__snapshots__/header.test.tsx.snap | 22 +- ...earch_dashboards_custom_logo.test.tsx.snap | 268 +++++++++++++----- ...opensearch_dashboards_custom_logo.test.tsx | 15 +- .../opensearch_dashboards_custom_logo.tsx | 24 +- .../public/chrome/ui/header/header.test.tsx | 2 +- src/core/public/chrome/ui/header/header.tsx | 4 +- .../public/chrome/ui/header/header_logo.tsx | 7 +- src/core/public/index.ts | 4 +- .../injected_metadata_service.test.ts | 4 +- .../injected_metadata_service.ts | 4 +- .../server/opensearch_dashboards_config.ts | 6 +- .../rendering/__mocks__/rendering_service.ts | 2 + .../rendering/rendering_service.test.ts | 28 +- .../server/rendering/rendering_service.tsx | 34 ++- src/core/server/rendering/types.ts | 2 +- .../__snapshots__/template.test.tsx.snap | 8 +- .../server/rendering/views/template.test.tsx | 4 +- src/core/server/rendering/views/template.tsx | 6 +- src/legacy/server/config/schema.js | 8 +- .../__snapshots__/welcome.test.tsx.snap | 8 +- .../application/components/welcome.test.tsx | 4 +- .../public/application/components/welcome.tsx | 10 +- .../opensearch_dashboards_services.ts | 2 +- test/common/config.js | 4 +- .../apps/visualize/_custom_branding.js | 4 +- 26 files changed, 338 insertions(+), 150 deletions(-) diff --git a/config/opensearch_dashboards.yml b/config/opensearch_dashboards.yml index 7b3416f6208..9c1ba20aa5c 100644 --- a/config/opensearch_dashboards.yml +++ b/config/opensearch_dashboards.yml @@ -152,10 +152,10 @@ #vis_type_timeline.graphiteBlockedIPs: [] # full version customized logo URL -# opensearchDashboards.branding.logoUrl: "" +# opensearchDashboards.branding.fullLogoUrl: "" # smaller version customized logo URL -# opensearchDashboards.branding.smallLogoUrl: "" +# opensearchDashboards.branding.logoUrl: "" # customized loading logo URL # opensearchDashboards.branding.loadingLogoUrl: "" diff --git a/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap b/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap index 23021f21c53..8421a105e5f 100644 --- a/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap +++ b/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap @@ -249,8 +249,8 @@ exports[`Header renders 1`] = ` } branding={ Object { + "fullLogoUrl": "/", "logoUrl": "/", - "smallLogoUrl": "/", "title": "OpenSearch Dashboards", } } @@ -1672,6 +1672,13 @@ exports[`Header renders 1`] = ` "borders": "none", "items": Array [ logo - - - - - - - - - - - - - - - - - + title logo `; -exports[`Custom Logo Take in a normal URL string 1`] = ` +exports[`Custom Logo Take in an invalid full logo URL string and a valid logo URL string 1`] = ` logo `; + +exports[`Custom Logo Take in invalid full logo URL and logo URL 1`] = ` + + + + + + + + + + + + + + + + + + + +`; diff --git a/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.test.tsx b/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.test.tsx index 66a3f7a3694..ef54524ddd3 100644 --- a/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.test.tsx +++ b/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.test.tsx @@ -11,13 +11,20 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { CustomLogo } from './opensearch_dashboards_custom_logo'; describe('Custom Logo', () => { - it('Take in a normal URL string', () => { - const branding = { logoUrl: '/custom' }; + it('Take in a normal full logo URL string', () => { + const branding = { fullLogoUrl: '/custom', title: 'title' }; const component = mountWithIntl(); expect(component).toMatchSnapshot(); }); - it('Take in a invalid URL string', () => { - const branding = {}; + + it('Take in an invalid full logo URL string and a valid logo URL string', () => { + const branding = { logoUrl: '/custom', title: 'title' }; + const component = mountWithIntl(); + expect(component).toMatchSnapshot(); + }); + + it('Take in invalid full logo URL and logo URL', () => { + const branding = { title: 'title' }; const component = mountWithIntl(); expect(component).toMatchSnapshot(); }); diff --git a/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.tsx b/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.tsx index bdf240cb1a7..ce1c4eecd85 100644 --- a/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.tsx +++ b/src/core/public/chrome/ui/header/branding/opensearch_dashboards_custom_logo.tsx @@ -35,21 +35,33 @@ import '../header_logo.scss'; import { OpenSearchDashboardsLogoDarkMode } from './opensearch_dashboards_logo_darkmode'; /** - * @param {string} logoUrl - custom URL for the top left logo of the main screen + * @param {string} fullLogoUrl - custom URL for the top left logo of the main screen + * @param {string} logoUrl - custom URL for the logo icon + * @param {string} title - custom title for the application */ export interface CustomLogoType { + fullLogoUrl?: string; logoUrl?: string; + title: string; } - +/** + * + * @param {CustomLogoType} - branding object consist of fullLogoUrl, logoUrl and title + * @returns A image component which is going to be rendered on the main page header bar. + * If fullLogoUrl is valid, the full logo by fullLogoUrl config will be rendered; + * if not, the logo icon by logoUrl config will be rendered; if both are not found, + * the default opensearch logo will be rendered. + */ export const CustomLogo = ({ ...branding }: CustomLogoType) => { - return !branding.logoUrl ? ( + const headerLogoUrl = !branding.fullLogoUrl ? branding.logoUrl : branding.fullLogoUrl; + return !branding.fullLogoUrl && !branding.logoUrl ? ( OpenSearchDashboardsLogoDarkMode() ) : ( logo diff --git a/src/core/public/chrome/ui/header/header.test.tsx b/src/core/public/chrome/ui/header/header.test.tsx index 6393f59833b..9a3ca4ece87 100644 --- a/src/core/public/chrome/ui/header/header.test.tsx +++ b/src/core/public/chrome/ui/header/header.test.tsx @@ -69,7 +69,7 @@ function mockProps() { isLocked$: new BehaviorSubject(false), loadingCount$: new BehaviorSubject(0), onIsLockedUpdate: () => {}, - branding: { logoUrl: '/', smallLogoUrl: '/', title: 'OpenSearch Dashboards' }, + branding: { fullLogoUrl: '/', logoUrl: '/', title: 'OpenSearch Dashboards' }, }; } diff --git a/src/core/public/chrome/ui/header/header.tsx b/src/core/public/chrome/ui/header/header.tsx index e7a4abd53cb..8555342503a 100644 --- a/src/core/public/chrome/ui/header/header.tsx +++ b/src/core/public/chrome/ui/header/header.tsx @@ -87,7 +87,7 @@ export interface HeaderProps { isLocked$: Observable; loadingCount$: ReturnType; onIsLockedUpdate: OnIsLockedUpdate; - branding: { logoUrl?: string }; + branding: { fullLogoUrl?: string; logoUrl?: string; title: string }; } export function Header({ @@ -127,7 +127,7 @@ export function Header({ forceNavigation$={observables.forceAppSwitcherNavigation$} navLinks$={observables.navLinks$} navigateToApp={application.navigateToApp} - logoUrl={branding.logoUrl} + branding={branding} />, , ], diff --git a/src/core/public/chrome/ui/header/header_logo.tsx b/src/core/public/chrome/ui/header/header_logo.tsx index b7219a2e186..b042da3c0d6 100644 --- a/src/core/public/chrome/ui/header/header_logo.tsx +++ b/src/core/public/chrome/ui/header/header_logo.tsx @@ -104,15 +104,12 @@ interface Props { navLinks$: Observable; forceNavigation$: Observable; navigateToApp: (appId: string) => void; - logoUrl?: string; + branding: CustomLogoType; } -export function HeaderLogo({ href, navigateToApp, logoUrl, ...observables }: Props) { +export function HeaderLogo({ href, navigateToApp, branding, ...observables }: Props) { const forceNavigation = useObservable(observables.forceNavigation$, false); const navLinks = useObservable(observables.navLinks$, []); - const branding: CustomLogoType = { - logoUrl, - }; return ( unknown; getBranding: () => { + fullLogoUrl?: string; logoUrl?: string; - smallLogoUrl?: string; title: string; }; }; @@ -297,8 +297,8 @@ export interface CoreStart { injectedMetadata: { getInjectedVar: (name: string, defaultValue?: any) => unknown; getBranding: () => { + fullLogoUrl?: string; logoUrl?: string; - smallLogoUrl?: string; title: string; }; }; diff --git a/src/core/public/injected_metadata/injected_metadata_service.test.ts b/src/core/public/injected_metadata/injected_metadata_service.test.ts index 140fa96f72f..d21de7e96b6 100644 --- a/src/core/public/injected_metadata/injected_metadata_service.test.ts +++ b/src/core/public/injected_metadata/injected_metadata_service.test.ts @@ -234,11 +234,11 @@ describe('setup.getBranding()', () => { it('returns injectedMetadata.branding', () => { const injectedMetadata = new InjectedMetadataService({ injectedMetadata: { - branding: { logoUrl: '/', smallLogoUrl: '/', title: 'title' }, + branding: { fullLogoUrl: '/', logoUrl: '/', title: 'title' }, }, } as any); const branding = injectedMetadata.setup().getBranding(); - expect(branding).toEqual({ logoUrl: '/', smallLogoUrl: '/', title: 'title' }); + expect(branding).toEqual({ fullLogoUrl: '/', logoUrl: '/', title: 'title' }); }); }); diff --git a/src/core/public/injected_metadata/injected_metadata_service.ts b/src/core/public/injected_metadata/injected_metadata_service.ts index 2cb1eef378a..ee69c820826 100644 --- a/src/core/public/injected_metadata/injected_metadata_service.ts +++ b/src/core/public/injected_metadata/injected_metadata_service.ts @@ -77,8 +77,8 @@ export interface InjectedMetadataParams { }; }; branding: { + fullLogoUrl?: string; logoUrl?: string; - smallLogoUrl?: string; title: string; }; }; @@ -186,8 +186,8 @@ export interface InjectedMetadataSetup { [key: string]: unknown; }; getBranding: () => { + fullLogoUrl?: string; logoUrl?: string; - smallLogoUrl?: string; title: string; }; } diff --git a/src/core/server/opensearch_dashboards_config.ts b/src/core/server/opensearch_dashboards_config.ts index 8284ab6c6e9..c3f2c7821c2 100644 --- a/src/core/server/opensearch_dashboards_config.ts +++ b/src/core/server/opensearch_dashboards_config.ts @@ -53,16 +53,16 @@ export const config = { autocompleteTerminateAfter: schema.duration({ defaultValue: 100000 }), autocompleteTimeout: schema.duration({ defaultValue: 1000 }), branding: schema.object({ - logoUrl: schema.string({ + fullLogoUrl: schema.string({ defaultValue: '/', }), - smallLogoUrl: schema.string({ + logoUrl: schema.string({ defaultValue: '/', }), loadingLogoUrl: schema.string({ defaultValue: '/', }), - title: schema.string({ defaultValue: 'OpenSearch Dashboards' }), + title: schema.string({ defaultValue: '' }), }), }), deprecations, diff --git a/src/core/server/rendering/__mocks__/rendering_service.ts b/src/core/server/rendering/__mocks__/rendering_service.ts index e3547c9f8ba..d4e0ede0182 100644 --- a/src/core/server/rendering/__mocks__/rendering_service.ts +++ b/src/core/server/rendering/__mocks__/rendering_service.ts @@ -42,10 +42,12 @@ export const setupMock: jest.Mocked = { export const mockSetup = jest.fn().mockResolvedValue(setupMock); export const mockStop = jest.fn(); export const mockCheckUrlValid = jest.fn(); +export const mockCheckTitleValid = jest.fn(); export const mockRenderingService: jest.Mocked = { setup: mockSetup, stop: mockStop, checkUrlValid: mockCheckUrlValid, + checkTitleValid: mockCheckTitleValid, }; export const RenderingService = jest.fn( () => mockRenderingService diff --git a/src/core/server/rendering/rendering_service.test.ts b/src/core/server/rendering/rendering_service.test.ts index 9a1d37203ff..ac726838d43 100644 --- a/src/core/server/rendering/rendering_service.test.ts +++ b/src/core/server/rendering/rendering_service.test.ts @@ -138,7 +138,7 @@ describe('RenderingService', () => { }); describe('checkUrlValid()', () => { - it('SVG URL is valid', async () => { + it('checks valid SVG URL', async () => { const result = await service.checkUrlValid( 'https://opensearch.org/assets/brand/SVG/Mark/opensearch_mark_default.svg', 'config' @@ -146,7 +146,7 @@ describe('RenderingService', () => { expect(result).toEqual(true); }); - it('PNG URL is valid', async () => { + it('checks valid PNG URL', async () => { const result = await service.checkUrlValid( 'https://opensearch.org/assets/brand/PNG/Mark/opensearch_mark_default.png', 'config' @@ -154,14 +154,34 @@ describe('RenderingService', () => { expect(result).toEqual(true); }); - it('URL does not contain svg, png or gif', async () => { + it('checks invalid URL that does not contain svg, png or gif', async () => { const result = await service.checkUrlValid('https://validUrl', 'config'); expect(result).toEqual(false); }); - it('URL is invalid', async () => { + it('checks invalid URL', async () => { const result = await service.checkUrlValid('http://notfound.svg', 'config'); expect(result).toEqual(false); }); }); + + describe('checkTitleValid()', () => { + it('checks valid title', () => { + const result = service.checkTitleValid('OpenSearch Dashboards', 'config'); + expect(result).toEqual(true); + }); + + it('checks invalid title with empty string', () => { + const result = service.checkTitleValid('', 'config'); + expect(result).toEqual(false); + }); + + it('checks invalid title with length > 36 character', () => { + const result = service.checkTitleValid( + 'OpenSearch Dashboardssssssssssssssssssssss', + 'config' + ); + expect(result).toEqual(false); + }); + }); }); diff --git a/src/core/server/rendering/rendering_service.tsx b/src/core/server/rendering/rendering_service.tsx index 49b5897defe..903f63887d3 100644 --- a/src/core/server/rendering/rendering_service.tsx +++ b/src/core/server/rendering/rendering_service.tsx @@ -49,6 +49,8 @@ import { } from './types'; import { OpenSearchDashboardsConfigType } from '../opensearch_dashboards_config'; +const DEFAULT_TITLE = 'OpenSearch Dashboards'; + /** @internal */ export class RenderingService { constructor(private readonly coreContext: CoreContext) {} @@ -63,18 +65,19 @@ export class RenderingService { .pipe(first()) .toPromise(); + const isFullLogoUrlValid = await this.checkUrlValid( + opensearchDashboardsConfig.branding.fullLogoUrl, + 'fullLogoUrl' + ); const isLogoUrlValid = await this.checkUrlValid( opensearchDashboardsConfig.branding.logoUrl, 'logoUrl' ); - const isSmallLogoUrlValid = await this.checkUrlValid( - opensearchDashboardsConfig.branding.smallLogoUrl, - 'smallLogoUrl' - ); const isLoadingLogoUrlValid = await this.checkUrlValid( opensearchDashboardsConfig.branding.loadingLogoUrl, 'loadingLogoUrl' ); + const isTitleValid = this.checkTitleValid(opensearchDashboardsConfig.branding.title, 'title'); return { render: async ( @@ -125,14 +128,14 @@ export class RenderingService { uiSettings: settings, }, branding: { - logoUrl: isLogoUrlValid ? opensearchDashboardsConfig.branding.logoUrl : undefined, - smallLogoUrl: isSmallLogoUrlValid - ? opensearchDashboardsConfig.branding.smallLogoUrl + fullLogoUrl: isFullLogoUrlValid + ? opensearchDashboardsConfig.branding.fullLogoUrl : undefined, + logoUrl: isLogoUrlValid ? opensearchDashboardsConfig.branding.logoUrl : undefined, loadingLogoUrl: isLoadingLogoUrlValid ? opensearchDashboardsConfig.branding.loadingLogoUrl : undefined, - title: opensearchDashboardsConfig.branding.title, + title: isTitleValid ? opensearchDashboardsConfig.branding.title : DEFAULT_TITLE, }, }, }; @@ -151,7 +154,7 @@ export class RenderingService { } public checkUrlValid = async (url: string, configName?: string): Promise => { - if (url.match(/\.(png|svg|gif)$/) === null) { + if (url.match(/\.(png|svg|gif|PNG|SVG|GIF)$/) === null) { this.logger.get('branding').warn(configName + ' config is not found or invalid.'); return false; } @@ -164,4 +167,17 @@ export class RenderingService { return false; }); }; + + public checkTitleValid = (title: string, configName?: string): boolean => { + if (!title || title.length > 36) { + this.logger + .get('branding') + .warn( + configName + + ' config is not found or invalid. Title length should be between 1 to 36 characters.' + ); + return false; + } + return true; + }; } diff --git a/src/core/server/rendering/types.ts b/src/core/server/rendering/types.ts index 31a61044888..98ee1ba20ae 100644 --- a/src/core/server/rendering/types.ts +++ b/src/core/server/rendering/types.ts @@ -75,8 +75,8 @@ export interface RenderingMetadata { }; }; branding: { + fullLogoUrl?: string; logoUrl?: string; - smallLogoUrl?: string; loadingLogoUrl?: string; title: string; }; diff --git a/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap b/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap index b54c56b50f3..beb6ec2b269 100644 --- a/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap +++ b/src/core/server/rendering/views/__snapshots__/template.test.tsx.snap @@ -66,7 +66,7 @@ Array [ data="{\\"strictCsp\\":true}" />, ,
@@ -367,7 +367,7 @@ Array [ data="{\\"strictCsp\\":true}" />, ,
diff --git a/src/core/server/rendering/views/template.test.tsx b/src/core/server/rendering/views/template.test.tsx index 08532e8b132..f562e484653 100644 --- a/src/core/server/rendering/views/template.test.tsx +++ b/src/core/server/rendering/views/template.test.tsx @@ -95,7 +95,7 @@ describe('Template', () => { it('renders with static logo with horizontal loading bar', () => { const branding = { - smallLogoUrl: '/', + logoUrl: '/', title: '', }; injectedMetadata.getBranding.mockReturnValue(branding); @@ -105,7 +105,7 @@ describe('Template', () => { it('renders with customized loading logo', () => { const branding = { - smallLogoUrl: '/', + logoUrl: '/', loadingLogoUrl: '/', title: '', }; diff --git a/src/core/server/rendering/views/template.tsx b/src/core/server/rendering/views/template.tsx index 7eb8bf06f42..f3fab623615 100644 --- a/src/core/server/rendering/views/template.tsx +++ b/src/core/server/rendering/views/template.tsx @@ -97,13 +97,13 @@ export const Template: FunctionComponent = ({ ); const renderBrandingEnabledOrDisabledLoadingBar = () => { - if (!injectedMetadata.branding.loadingLogoUrl && injectedMetadata.branding.smallLogoUrl) { + if (!injectedMetadata.branding.loadingLogoUrl && injectedMetadata.branding.logoUrl) { return
; } }; const renderBrandingEnabledOrDisabledLoadingLogo = () => { - if (!injectedMetadata.branding.loadingLogoUrl && !injectedMetadata.branding.smallLogoUrl) { + if (!injectedMetadata.branding.loadingLogoUrl && !injectedMetadata.branding.logoUrl) { return openSearchLogoSpinner; } else { return ( @@ -112,7 +112,7 @@ export const Template: FunctionComponent = ({ className="loadingLogo" src={ !injectedMetadata.branding.loadingLogoUrl - ? injectedMetadata.branding.smallLogoUrl + ? injectedMetadata.branding.logoUrl : injectedMetadata.branding.loadingLogoUrl } alt={injectedMetadata.branding.title + ' logo'} diff --git a/src/legacy/server/config/schema.js b/src/legacy/server/config/schema.js index 1b58b6c4983..89c1b6cc755 100644 --- a/src/legacy/server/config/schema.js +++ b/src/legacy/server/config/schema.js @@ -234,10 +234,10 @@ export default () => // TODO Also allow units here like in opensearch config once this is moved to the new platform autocompleteTimeout: Joi.number().integer().min(1).default(1000), branding: Joi.object({ - logoUrl: Joi.string().default('/'), - smallLogoUrl: Joi.string().default('/'), - loadingLogoUrl: Joi.string().default('/'), - title: Joi.string().default('OpenSearch Dashboards'), + fullLogoUrl: Joi.any().default('/'), + logoUrl: Joi.any().default('/'), + loadingLogoUrl: Joi.any().default('/'), + title: Joi.any().default(''), }), }).default(), diff --git a/src/plugins/home/public/application/components/__snapshots__/welcome.test.tsx.snap b/src/plugins/home/public/application/components/__snapshots__/welcome.test.tsx.snap index bb331c752ba..c25085bc1b1 100644 --- a/src/plugins/home/public/application/components/__snapshots__/welcome.test.tsx.snap +++ b/src/plugins/home/public/application/components/__snapshots__/welcome.test.tsx.snap @@ -18,7 +18,7 @@ exports[`should render a Welcome screen with customized branding 1`] = ` className="homWelcome__customLogoContainer" > logo logo logo logo { */ const branding = { - smallLogoUrl: '/', + logoUrl: '/', title: 'OpenSearch Dashboards', }; @@ -102,7 +102,7 @@ test('should render a Welcome screen with the default OpenSearch Dashboards bran test('should render a Welcome screen with customized branding', () => { const customBranding = { - smallLogoUrl: '/custom', + logoUrl: '/custom', title: 'custom title', }; const component = shallow( diff --git a/src/plugins/home/public/application/components/welcome.tsx b/src/plugins/home/public/application/components/welcome.tsx index 77d265c0862..67f7dbb4cf3 100644 --- a/src/plugins/home/public/application/components/welcome.tsx +++ b/src/plugins/home/public/application/components/welcome.tsx @@ -59,7 +59,7 @@ interface Props { onSkip: () => void; telemetry?: TelemetryPluginStart; branding: { - smallLogoUrl?: string; + logoUrl?: string; title: string; }; } @@ -145,7 +145,7 @@ export class Welcome extends React.Component { }; private renderBrandingEnabledOrDisabledLogo = () => { - if (!this.props.branding.smallLogoUrl) { + if (!this.props.branding.logoUrl) { return ( @@ -157,9 +157,9 @@ export class Welcome extends React.Component { logo
); diff --git a/src/plugins/home/public/application/opensearch_dashboards_services.ts b/src/plugins/home/public/application/opensearch_dashboards_services.ts index 7a7dc60a3d1..a14d33ee54d 100644 --- a/src/plugins/home/public/application/opensearch_dashboards_services.ts +++ b/src/plugins/home/public/application/opensearch_dashboards_services.ts @@ -71,8 +71,8 @@ export interface HomeOpenSearchDashboardsServices { injectedMetadata: { getInjectedVar: (name: string, defaultValue?: any) => unknown; getBranding: () => { + fullLogoUrl?: string; logoUrl?: string; - smallLogoUrl?: string; title: string; }; }; diff --git a/test/common/config.js b/test/common/config.js index 05432914a95..36b6732ea39 100644 --- a/test/common/config.js +++ b/test/common/config.js @@ -75,8 +75,8 @@ export default function () { // `--newsfeed.service.urlRoot=${servers.opensearchDashboards.protocol}://${servers.opensearchDashboards.hostname}:${servers.opensearchDashboards.port}`, // `--newsfeed.service.pathTemplate=/api/_newsfeed-FTS-external-service-simulators/opensearch-dashboards/v{VERSION}.json`, // Custom branding config - `--opensearchDashboards.branding.logoUrl=https://opensearch.org/assets/brand/SVG/Logo/opensearch_logo_darkmode.svg`, - `--opensearchDashboards.branding.smallLogoUrl=https://opensearch.org/assets/brand/SVG/Logo/opensearch_logo_darkmode.svg`, + `--opensearchDashboards.branding.fullLogoUrl=https://opensearch.org/assets/brand/SVG/Logo/opensearch_logo_default.svg`, + `--opensearchDashboards.branding.logoUrl=https://opensearch.org/assets/brand/SVG/Mark/opensearch_mark_default.svg`, `--opensearchDashboards.branding.title=OpenSearch`, ], }, diff --git a/test/functional/apps/visualize/_custom_branding.js b/test/functional/apps/visualize/_custom_branding.js index 1263914dbb3..54669990cf9 100644 --- a/test/functional/apps/visualize/_custom_branding.js +++ b/test/functional/apps/visualize/_custom_branding.js @@ -44,7 +44,7 @@ export default function ({ getService, getPageObjects }) { describe('should render welcome page', async () => { this.tags('includeFirefox'); const expectedWelcomeLogo = - 'https://opensearch.org/assets/brand/SVG/Logo/opensearch_logo_darkmode.svg'; + 'https://opensearch.org/assets/brand/SVG/Mark/opensearch_mark_default.svg'; const expectedWelcomeMessage = 'Welcome to OpenSearch'; //unloading any pre-existing settings so the welcome page will appear @@ -89,7 +89,7 @@ export default function ({ getService, getPageObjects }) { describe('should render home page', async () => { this.tags('includeFirefox'); const expectedUrl = - 'https://opensearch.org/assets/brand/SVG/Logo/opensearch_logo_darkmode.svg'; + 'https://opensearch.org/assets/brand/SVG/Logo/opensearch_logo_default.svg'; before(async function () { await PageObjects.common.navigateToApp('home');