Skip to content

Commit

Permalink
feat: switch to the new headless REST application type CMS content mo…
Browse files Browse the repository at this point in the history
…del (#302)

- rename resource set references from 'app_sf_responsive_cm' to 'app_sf_base_cm'

BREAKING CHANGE:
The PWA now uses the ICM CMS content model of the new headless 'rest' application (requires ICM version 7.10.21.0).
  • Loading branch information
shauke authored and dhhyi committed Jul 28, 2020
1 parent 0a356cc commit 50dc72e
Show file tree
Hide file tree
Showing 16 changed files with 57 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe('Server Html', () => {
},
pagelets: [
{
definitionQualifiedName: 'app_sf_responsive_cm:component.common.freeStyle.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.freeStyle.pagelet2-Component',
link: {
type: 'Link',
uri: 'inSPIRED-inTRONICS-Site/-/cms/pagelets/test_foo_bar',
Expand All @@ -46,7 +46,7 @@ describe('Server Html', () => {
<div><a href="page://${_.pageId}">page</a></div>
<div><a href="route://${_.route}">route</a></div>
<img src="https://./?[ismediaobject]isfile://inSPIRED-Site/inTRONICS-b2c-responsive/inSPIRED-inTRONICS-b2c-responsive/en_US/logo%402x.png|/INTERSHOP/static/WFS/inSPIRED-Site/inTRONICS-b2c-responsive/inSPIRED-inTRONICS-b2c-responsive/en_US/logo%402x.png[/ismediaobject]" alt="" width="92" height="92" style="width: unset;" />`,
definitionQualifiedName: 'app_sf_responsive_cm:component.common.freeStyle.pagelet2-Component-HTML',
definitionQualifiedName: 'app_sf_base_cm:component.common.freeStyle.pagelet2-Component-HTML',
},
},
},
Expand Down
6 changes: 3 additions & 3 deletions schematics/src/cms-component/factory_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ describe('CMS Component Schematic', () => {
const schematicRunner = createSchematicRunner();
const defaultOptions: Options = {
name: 'foo',
definitionQualifiedName: 'app_sf_responsive_cm:component.common.foo.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.foo.pagelet2-Component',
styleFile: false,
module: undefined,
export: false,
Expand Down Expand Up @@ -45,7 +45,7 @@ describe('CMS Component Schematic', () => {
providers: [{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.foo.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.foo.pagelet2-Component',
class: CMSFooComponent,
},
multi: true,
Expand Down Expand Up @@ -90,7 +90,7 @@ describe('CMS Component Schematic', () => {
providers: [{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.foo.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.foo.pagelet2-Component',
class: FooComponent,
},
multi: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,14 @@ describe('Content Pagelet Mapper', () => {

it('should have special handling for image pagelet configuration parmeters', () => {
const input = {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.image.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.image.pagelet2-Component',
displayName: 'Brand Image 5',
domain: 'domain',
id: 'cmp_brandImage_5',
configurationParameters: {
Image: {
value: 'inSPIRED-inTRONICS-b2c-responsive:/brands/adata.jpg',
definitionQualifiedName: 'app_sf_responsive_cm:component.common.image.pagelet2-Component-Image',
definitionQualifiedName: 'app_sf_base_cm:component.common.image.pagelet2-Component-Image',
},
},
} as ContentPageletData;
Expand Down
24 changes: 12 additions & 12 deletions src/app/shared/cms/cms.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,95 +20,95 @@ import { SfeAdapterService } from './sfe-adapter/sfe-adapter.service';
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.text.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.text.pagelet2-Component',
class: CMSTextComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.freeStyle.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.freeStyle.pagelet2-Component',
class: CMSFreestyleComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.container.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.container.pagelet2-Component',
class: CMSContainerComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.image.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.image.pagelet2-Component',
class: CMSImageComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.imageEnhanced.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.imageEnhanced.pagelet2-Component',
class: CMSImageEnhancedComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.carousel.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.carousel.pagelet2-Component',
class: CMSCarouselComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.productListManual.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.productListManual.pagelet2-Component',
class: CMSProductListComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.video.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.video.pagelet2-Component',
class: CMSVideoComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.shopping.landingPage.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.shopping.landingPage.pagelet2-Component',
class: CMSLandingPageComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.shopping.staticPage.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.shopping.staticPage.pagelet2-Component',
class: CMSStaticPageComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:pagevariant.standard.pagelet2-Pagevariant',
definitionQualifiedName: 'app_sf_base_cm:pagevariant.standard.pagelet2-Pagevariant',
class: CMSStandardPageComponent,
},
multi: true,
},
{
provide: CMS_COMPONENT,
useValue: {
definitionQualifiedName: 'app_sf_responsive_cm:component.common.dialog.pagelet2-Component',
definitionQualifiedName: 'app_sf_base_cm:component.common.dialog.pagelet2-Component',
class: CMSDialogComponent,
},
multi: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

exports[`Cms Carousel Component should be created 1`] = `
<div class="foo-class" ng-reflect-ng-class="foo-class">
<ish-content-slot ng-reflect-slot="app_sf_responsive_cm:slot.caro" ng-reflect-wrapper="true"
<ish-content-slot ng-reflect-slot="app_sf_base_cm:slot.carousel.i" ng-reflect-wrapper="true"
><div>
<ngb-carousel
class="carousel slide"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
<div *ngIf="pagelet" [ngClass]="pagelet.stringParam('CSSClass')">
<ish-content-slot
[wrapper]="true"
[slot]="'app_sf_responsive_cm:slot.carousel.items.pagelet2-Slot'"
[pagelet]="pagelet"
>
<ish-content-slot [wrapper]="true" [slot]="'app_sf_base_cm:slot.carousel.items.pagelet2-Slot'" [pagelet]="pagelet">
<div [ngClass]="pagelet.stringParam('CarouselCSSClass')">
<ngb-carousel
#ngbCarousel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ describe('Cms Carousel Component', () => {
slots: [
{
displayName: 'test',
definitionQualifiedName: 'app_sf_responsive_cm:slot.carousel.items.pagelet2-Slot',
definitionQualifiedName: 'app_sf_base_cm:slot.carousel.items.pagelet2-Slot',
pageletIDs: ['slide1', 'slide2'],
},
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export class CMSCarouselComponent implements CMSComponent, OnChanges, OnDestroy
}
this.itemGridSize = (12 - (12 % this.slideItems)) / this.slideItems;

const slotPagelets = this.pagelet.slot('app_sf_responsive_cm:slot.carousel.items.pagelet2-Slot').pageletIDs;
const slotPagelets = this.pagelet.slot('app_sf_base_cm:slot.carousel.items.pagelet2-Slot').pageletIDs;
this.pageletSlides = arraySlices(slotPagelets, this.slideItems);

this.appRef.isStable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
<div [ngClass]="containerClasses" class="content-container">
<ish-content-slot
[wrapper]="true"
[slot]="'app_sf_responsive_cm:slot.container.content.pagelet2-Slot'"
[pagelet]="pagelet"
>
<ish-content-slot [wrapper]="true" [slot]="'app_sf_base_cm:slot.container.content.pagelet2-Slot'" [pagelet]="pagelet">
<ish-content-pagelet
*ngFor="let slotPagelet of contentSlotPagelets"
[pageletId]="slotPagelet"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ describe('Cms Container Component', () => {
slots: [
{
displayName: 'test',
definitionQualifiedName: 'app_sf_responsive_cm:slot.container.content.pagelet2-Slot',
definitionQualifiedName: 'app_sf_base_cm:slot.container.content.pagelet2-Slot',
pageletIDs: ['slide1', 'slide2'],
},
],
Expand All @@ -56,7 +56,7 @@ describe('Cms Container Component', () => {
class="content-container col-12 col-md-6 col-lg-4 float-left foo-class"
ng-reflect-ng-class="col-12 col-md-6 col-lg-4 float"
>
<ish-content-slot ng-reflect-slot="app_sf_responsive_cm:slot.cont" ng-reflect-wrapper="true"
<ish-content-slot ng-reflect-slot="app_sf_base_cm:slot.container." ng-reflect-wrapper="true"
><ish-content-pagelet ng-reflect-pagelet-id="slide1"></ish-content-pagelet
><ish-content-pagelet ng-reflect-pagelet-id="slide2"></ish-content-pagelet
></ish-content-slot>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export class CMSContainerComponent implements CMSComponent, OnChanges {
containerClasses = '';

ngOnChanges() {
let contentSlotPagelets = this.pagelet.slot('app_sf_responsive_cm:slot.container.content.pagelet2-Slot').pageletIDs;
let contentSlotPagelets = this.pagelet.slot('app_sf_base_cm:slot.container.content.pagelet2-Slot').pageletIDs;
if (this.pagelet.hasParam('UpperBound')) {
contentSlotPagelets = contentSlotPagelets.slice(0, this.pagelet.numberParam('UpperBound'));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,4 @@
data-testing-id="dialog-content"
></div>

<ish-content-slot
[slot]="'app_sf_responsive_cm:slot.dialog.content.pagelet2-Slot'"
[pagelet]="pagelet"
></ish-content-slot>
<ish-content-slot [slot]="'app_sf_base_cm:slot.dialog.content.pagelet2-Slot'" [pagelet]="pagelet"></ish-content-slot>
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ describe('Cms Dialog Component', () => {
slots: [
{
displayName: 'dialog',
definitionQualifiedName: 'app_sf_responsive_cm:slot.dialog.content.pagelet2-Slot',
definitionQualifiedName: 'app_sf_base_cm:slot.dialog.content.pagelet2-Slot',
pageletIDs: ['dialogId'],
},
],
Expand All @@ -73,7 +73,7 @@ describe('Cms Dialog Component', () => {

expect(() => fixture.detectChanges()).not.toThrow();
expect(element).toMatchInlineSnapshot(
`<ish-content-slot ng-reflect-slot="app_sf_responsive_cm:slot.dial"></ish-content-slot>`
`<ish-content-slot ng-reflect-slot="app_sf_base_cm:slot.dialog.con"></ish-content-slot>`
);
});
});
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<!-- NOTE:
For the PWA the 'app_sf_responsive_cm:pagevariant.standard.pagelet2-Pagevariant' model only renders the content of the 'content' slot.
For the PWA the 'app_sf_base_cm:pagevariant.standard.pagelet2-Pagevariant' model only renders the content of the 'content' slot.
'header' and 'footer' slot content is not relevant for the PWA while the content of the Responsive Starter Store is reused.
-->
<ish-content-slot
[slot]="'app_sf_responsive_cm:slot.pagevariant.content.pagelet2-Slot'"
[slot]="'app_sf_base_cm:slot.pagevariant.content.pagelet2-Slot'"
[pagelet]="pagelet"
></ish-content-slot>
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
<div class="marketing-area">
<ish-content-slot
[slot]="'app_sf_responsive_cm:slot.marketing.base.pagelet2-Slot'"
[pagelet]="pagelet"
></ish-content-slot>
<ish-content-slot [slot]="'app_sf_base_cm:slot.marketing.base.pagelet2-Slot'" [pagelet]="pagelet"></ish-content-slot>
</div>

<div class="row">
Expand All @@ -22,20 +19,20 @@
</div>
<div class="marketing-area">
<ish-content-slot
[slot]="'app_sf_responsive_cm:slot.marketing.sidePanel.pagelet2-Slot'"
[slot]="'app_sf_base_cm:slot.marketing.sidePanel.pagelet2-Slot'"
[pagelet]="pagelet"
></ish-content-slot>
</div>
</div>
<div class="col-md-9">
<ish-content-slot [slot]="'app_sf_responsive_cm:slot.staticPage.content.pagelet2-Slot'" [pagelet]="pagelet">
<ish-content-slot [slot]="'app_sf_base_cm:slot.staticPage.content.pagelet2-Slot'" [pagelet]="pagelet">
</ish-content-slot>
</div>
</ng-container>

<ng-template #noSidePanel>
<div class="col-md-12">
<ish-content-slot [slot]="'app_sf_responsive_cm:slot.staticPage.content.pagelet2-Slot'" [pagelet]="pagelet">
<ish-content-slot [slot]="'app_sf_base_cm:slot.staticPage.content.pagelet2-Slot'" [pagelet]="pagelet">
</ish-content-slot>
</div>
</ng-template>
Expand Down
Loading

0 comments on commit 50dc72e

Please sign in to comment.