diff --git a/ccm-bundle-devel-wildfly-web/package-lock.json b/ccm-bundle-devel-wildfly-web/package-lock.json
index 8c56bb742..bcb5c5be3 100644
--- a/ccm-bundle-devel-wildfly-web/package-lock.json
+++ b/ccm-bundle-devel-wildfly-web/package-lock.json
@@ -1711,6 +1711,7 @@
"requires": {
"react": "16.4.0",
"react-dom": "16.4.0",
+ "react-modal": "3.4.5",
"react-redux": "5.0.7",
"redux": "4.0.0"
},
@@ -1866,6 +1867,10 @@
"version": "2.0.2",
"bundled": true
},
+ "exenv": {
+ "version": "1.2.2",
+ "bundled": true
+ },
"fbjs": {
"version": "0.8.16",
"bundled": true,
@@ -2045,6 +2050,20 @@
"prop-types": "15.6.1"
}
},
+ "react-lifecycles-compat": {
+ "version": "3.0.4",
+ "bundled": true
+ },
+ "react-modal": {
+ "version": "3.4.5",
+ "bundled": true,
+ "requires": {
+ "exenv": "1.2.2",
+ "prop-types": "15.6.1",
+ "react-lifecycles-compat": "3.0.4",
+ "warning": "3.0.0"
+ }
+ },
"react-redux": {
"version": "5.0.7",
"bundled": true,
@@ -2140,6 +2159,13 @@
"version": "0.7.18",
"bundled": true
},
+ "warning": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
"whatwg-fetch": {
"version": "2.0.4",
"bundled": true
diff --git a/ccm-cms-js/package-lock.json b/ccm-cms-js/package-lock.json
index 04406ceb6..a2ad1e61e 100644
--- a/ccm-cms-js/package-lock.json
+++ b/ccm-cms-js/package-lock.json
@@ -108,6 +108,7 @@
"requires": {
"react": "16.4.0",
"react-dom": "16.4.0",
+ "react-modal": "3.4.5",
"react-redux": "5.0.7",
"redux": "4.0.0"
},
@@ -263,6 +264,10 @@
"version": "2.0.2",
"bundled": true
},
+ "exenv": {
+ "version": "1.2.2",
+ "bundled": true
+ },
"fbjs": {
"version": "0.8.16",
"bundled": true,
@@ -442,6 +447,20 @@
"prop-types": "15.6.1"
}
},
+ "react-lifecycles-compat": {
+ "version": "3.0.4",
+ "bundled": true
+ },
+ "react-modal": {
+ "version": "3.4.5",
+ "bundled": true,
+ "requires": {
+ "exenv": "1.2.2",
+ "prop-types": "15.6.1",
+ "react-lifecycles-compat": "3.0.4",
+ "warning": "3.0.0"
+ }
+ },
"react-redux": {
"version": "5.0.7",
"bundled": true,
@@ -537,6 +556,13 @@
"version": "0.7.18",
"bundled": true
},
+ "warning": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
"whatwg-fetch": {
"version": "2.0.4",
"bundled": true
diff --git a/ccm-pagemodelseditor/package-lock.json b/ccm-pagemodelseditor/package-lock.json
index 27e1e32c6..f27971473 100644
--- a/ccm-pagemodelseditor/package-lock.json
+++ b/ccm-pagemodelseditor/package-lock.json
@@ -29,6 +29,15 @@
"@types/react": "16.3.14"
}
},
+ "@types/react-modal": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.1.2.tgz",
+ "integrity": "sha512-EmzMU61fnQiTe1rajQRgo0ceaTo/TD5qsBCjMgPhp9PWia0HOD2VyDMnNErcVfWq8VBmkBJZoGhFmtQm2COY5g==",
+ "dev": true,
+ "requires": {
+ "@types/react": "16.3.14"
+ }
+ },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -204,6 +213,11 @@
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
"dev": true
},
+ "exenv": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
+ "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
+ },
"fbjs": {
"version": "0.8.16",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
@@ -421,6 +435,22 @@
"prop-types": "15.6.1"
}
},
+ "react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "react-modal": {
+ "version": "3.4.5",
+ "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.4.5.tgz",
+ "integrity": "sha512-fYaGmsvt4z5voC2Bl/9ngIWES4BSRYgGnTljMwuzTuYZ1BBpaZbnXia8xlvj7mF0kg3aPV+5APjZRiMfRG6vyA==",
+ "requires": {
+ "exenv": "1.2.2",
+ "prop-types": "15.6.1",
+ "react-lifecycles-compat": "3.0.4",
+ "warning": "3.0.0"
+ }
+ },
"react-redux": {
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz",
@@ -540,6 +570,14 @@
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz",
"integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA=="
},
+ "warning": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
"whatwg-fetch": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
diff --git a/ccm-pagemodelseditor/package.json b/ccm-pagemodelseditor/package.json
index b3501beb5..fcaefa916 100644
--- a/ccm-pagemodelseditor/package.json
+++ b/ccm-pagemodelseditor/package.json
@@ -17,12 +17,14 @@
"dependencies": {
"react": "^16.3.2",
"react-dom": "^16.3.2",
+ "react-modal": "^3.4.5",
"react-redux": "^5.0.7",
"redux": "^4.0.0"
},
"devDependencies": {
"@types/react": "^16.3.14",
"@types/react-dom": "^16.0.5",
+ "@types/react-modal": "^3.1.2",
"tslint": "^5.10.0",
"typescript": "^2.8.3"
}
diff --git a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx
index 105f62c2d..29fbe27fc 100644
--- a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx
+++ b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx
@@ -1,9 +1,10 @@
import * as React from "react";
+import * as ReactModal from "react-modal";
import {
ContainerModel,
PageModel,
PageModelVersion,
- PublicationStatus
+ PublicationStatus,
} from "./datatypes";
export {
@@ -55,7 +56,7 @@ interface PageModelsListProps {
ccmApplication: string;
dispatcherPrefix: string;
- pageModels: PageModel[],
+ pageModels: PageModel[];
selectPageModel: (selectedPageModel: PageModel) => void;
}
@@ -101,8 +102,8 @@ class PageModelsList
// .catch((error) => {
// this.setState({
// ...this.state,
- // errorMsg: `Failed to retrieve PageModels from `
- // + `${url}: ${error.message}`,
+ // errorMsg: `Failed to retrieve PageModels `
+ // + ` from ${url}: ${error.message}`,
// });
// });
// } else {
@@ -128,22 +129,22 @@ class PageModelsList
return
{this.props.pageModels.length > 0 &&
-
- {this.props.pageModels
- .map((pageModel: PageModel, index: number) =>
- ,
+
+ {this.props.pageModels
+ .map((pageModel: PageModel, index: number) =>
+ ,
)}
-
+
}
;
}
}
interface PageModelListItemProps {
- index: number,
+ index: number;
pageModel: PageModel;
selectPageModel: (selectedPageModel: PageModel) => void;
}
@@ -158,14 +159,14 @@ class PageModelListItem
public render(): React.ReactNode {
return
{
- event.preventDefault();
- // console.log("A PageModel has been selected");
- this.props.selectPageModel(this.props.pageModel);
- }
- }>
+ href="#"
+ onClick={
+ (event) => {
+ event.preventDefault();
+ // console.log("A PageModel has been selected");
+ this.props.selectPageModel(this.props.pageModel);
+ }
+ }>
{this.props.pageModel.title}
;
@@ -190,7 +191,7 @@ interface PageModelComponentState {
name: string;
title: string;
description: string;
- }
+ };
}
class PageModelComponent
@@ -203,14 +204,15 @@ class PageModelComponent
editMode: this.props.pageModel.pageModelId === 0,
errorMsg: null,
form: {
+ description: this.props.pageModel.description,
name: this.props.pageModel.name,
title: this.props.pageModel.title,
- description: this.props.pageModel.description
- }
+ },
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
+ this.publishPageModel = this.publishPageModel.bind(this);
}
public render(): React.ReactNode {
@@ -218,9 +220,9 @@ class PageModelComponent
if (this.state.editMode) {
return
{this.state.errorMsg !== null &&
-
- {this.state.errorMsg}
-
+
+ {this.state.errorMsg}
+
}
-
+ ;
} else {
return
@@ -295,16 +297,20 @@ class PageModelComponent
});
}}>Edit
- {this.props.pageModel.publicationStatus === PublicationStatus.NOT_PUBLISHED.toString()
- &&
+ {this.props.pageModel.publicationStatus
+ === PublicationStatus.NOT_PUBLISHED.toString()
+ &&
}
- {this.props.pageModel.publicationStatus === PublicationStatus.NEEDS_UPDATE.toString()
- &&
+ {this.props.pageModel.publicationStatus
+ === PublicationStatus.NEEDS_UPDATE.toString()
+ &&
}
+ ccmApplication={this.props.ccmApplication}
+ containers={this.props.pageModel.containers}
+ dispatcherPrefix={this.props.dispatcherPrefix} />
;
}
}
@@ -317,10 +323,10 @@ class PageModelComponent
...this.state,
editMode: false,
form: {
+ description: this.props.pageModel.description,
name: this.props.pageModel.name,
title: this.props.pageModel.title,
- description: this.props.pageModel.description,
- }
+ },
});
}
@@ -359,10 +365,10 @@ class PageModelComponent
this.setState({
editMode: this.state.editMode,
form: {
+ description: this.state.form.description,
name: targetInput.value,
title: this.state.form.title,
- description: this.state.form.description,
- }
+ },
});
break;
}
@@ -372,10 +378,10 @@ class PageModelComponent
this.setState({
editMode: this.state.editMode,
form: {
+ description: this.state.form.description,
name: this.state.form.name,
title: targetInput.value,
- description: this.state.form.description,
- }
+ },
});
break;
}
@@ -385,10 +391,10 @@ class PageModelComponent
this.setState({
editMode: this.state.editMode,
form: {
+ description: targetArea.value,
name: this.state.form.name,
title: this.state.form.title,
- description: targetArea.value,
- }
+ },
});
break;
}
@@ -408,8 +414,8 @@ class PageModelComponent
const init: RequestInit = {
body: JSON.stringify({
- title: this.state.form.title,
description: this.state.form.description,
+ title: this.state.form.title,
}),
credentials: "same-origin",
headers,
@@ -433,14 +439,15 @@ class PageModelComponent
this.setState({
...this.state,
errorMsg: `Failed to update/create PageModel: `
- + ` ${response.status} ${response.statusText}`,
+ + ` ${response.status} ${response.statusText}`,
});
}
})
.catch((error) => {
this.setState({
...this.state,
- errorMsg: `Failed to update/create PageModel: ${error.message}`,
+ errorMsg: `Failed to update/create PageModel: `
+ + `${error.message}`,
});
});
}
@@ -450,13 +457,13 @@ class PageModelComponent
event.preventDefault();
const headers: Headers = new Headers();
- //headers.append("Content-Type", "application/json");
+ // headers.append("Content-Type", "application/json");
headers.append("Content-Type", "application/x-www-form-urlencoded");
- //const formData: FormData = new FormData();
- //formData.set("action", "publish");
- //const data: URLSearchParams = new URLSearchParams();
- //data.append("action", "publish");
+ // const formData: FormData = new FormData();
+ // formData.set("action", "publish");
+ // const data: URLSearchParams = new URLSearchParams();
+ // data.append("action", "publish");
const init: RequestInit = {
@@ -479,7 +486,7 @@ class PageModelComponent
this.setState({
...this.state,
errorMsg: `Failed to publish PageModel: `
- + ` ${response.status} ${response.statusText}`,
+ + ` ${response.status} ${response.statusText}`,
});
}
})
@@ -487,7 +494,7 @@ class PageModelComponent
this.setState({
...this.state,
errorMsg: `Failed to publish PageModel: ${error.message}`,
- })
+ });
});
}
@@ -496,25 +503,99 @@ class PageModelComponent
interface ContainerListProps {
- containers: ContainerModel[],
+ ccmApplication: string;
+ containers: ContainerModel[];
+ dispatcherPrefix: string;
}
-class ContainerListComponent extends React.Component {
+interface ContainerListState {
+
+ newContainerName: string;
+}
+
+class ContainerListComponent
+ extends React.Component {
+
+ constructor(props: ContainerListProps) {
+
+ super(props);
+
+ this.state = {
+ newContainerName: "",
+ }
+
+ this.addContainer = this.addContainer.bind(this);
+ }
public render(): React.ReactNode {
return
-
+
{this.props.containers
- && this.props.containers.map((container) =>
- -
- {container.key}
-
-
-
-
)}
+ && this.props.containers.map((container) =>
+ -
+ {container.key}
+
+
+
+
)}
-
+ ;
+ }
+
+ private updateNewContainerName(
+ event: React.ChangeEvent): void {
+
+ const target: HTMLInputElement = event.target as HTMLInputElement;
+
+ this.setState({
+ ...this.state,
+ newContainerName: target.value,
+ });
+ }
+
+ private addContainer(
+ event: React.FormEvent): void {
+
+ event.preventDefault();
+
+ const headers: Headers = new Headers();
+ headers.append("Content-Type", "application/json");
+
+ const init: RequestInit = {
+
+ body: JSON.stringify({}),
+ credentials: "same-origin",
+ headers,
+ method: "PUT",
+ }
+
+ const url: string = `${this.props.dispatcherPrefix}`
+ + `/page-models/${this.props.ccmApplication}/`
+ + `${this.state.newContainerName}`;
}
}
@@ -530,7 +611,7 @@ interface PageModelEditorState {
interface PageModelEditorState {
- errorMessages: string[],
+ errorMessages: string[];
pageModels: PageModel[];
selectedPageModel: PageModel | null;
}
@@ -538,194 +619,6 @@ interface PageModelEditorState {
class PageModelEditor
extends React.Component<{}, PageModelEditorState> {
- constructor(props: any) {
-
- super(props);
-
- // this.state = {
- // // selectedPageModel: newPageModel,
- // context: {
- // pageModelSelected: false,
- // selectedPageModel: newPageModel,
- // },
- // };
- this.state = {
- errorMessages: [],
- pageModels: [],
- selectedPageModel: null,
- }
- }
-
- public componentDidMount() {
-
- this.fetchPageModels();
- }
-
- public render(): React.ReactNode {
-
- return
-
-
-
-
-
-
-
- Available PageModels
-
-
-
-
{
- this.setState(
- (state: PageModelEditorState) => {
- return {
- ...state,
- selectedPageModel,
- };
- });
- }}/>
-
-
-
-
-
-
-
-
-
-
-
- {this.state.errorMessages.length > 0 &&
-
- {this.state.errorMessages.map((msg) => {
-
- {msg}
-
- })}
-
- }
- {this.state.selectedPageModel !== null &&
-
{
- this.reload();
- }}/>
- }
-
-
- ;
- }
-
- private createNewPageModel(event: React.MouseEvent): void {
-
- event.preventDefault();
-
- this.setState({
- ...this.state,
- selectedPageModel: {
- containers: [],
- description: "",
- lastModified: 0,
- lastPublished: 0,
- modelUuid: "",
- name: "",
- pageModelId: 0,
- publicationStatus: PublicationStatus.NOT_PUBLISHED.toString(),
- title: "",
- type: "",
- uuid: "",
- version: PageModelVersion.DRAFT,
- }
- });
- }
-
- private fetchPageModels(): void {
-
- const init: RequestInit = {
- credentials: "same-origin",
- method: "GET",
- };
-
- const url: string = `${PageModelEditor.getDispatcherPrefix()}`
- + `/page-models/${PageModelEditor.getCcmApplication()}`;
-
- fetch(url, init)
- .then((response) => {
- if (response.ok) {
- response
- .json()
- .then((pageModels: PageModel[]) => {
- this.setState({
- ...this.state,
- pageModels
- })
- })
- .catch((error) => {
- const errorMessages: string[] = this
- .state.errorMessages;
- errorMessages.push(`Failed to retrieve PageModels ` +
- `from ${url}: ${error.message}`);
-
- this.setState({
- ...this.state,
- errorMessages,
- });
- });
- } else {
- const errorMessages: string[] = this
- .state.errorMessages;
- errorMessages.push(`Failed to retrieve PageModels from `
- + `\"${url}\": HTTP Status Code: `
- + `${response.status}; `
- + `message: ${response.statusText}`);
-
- this.setState({
- ...this.state,
- errorMessages,
- });
- }
- })
- .catch((error) => {
- const errorMessages: string[] = this
- .state.errorMessages;
- errorMessages.push(`Failed to retrieve PageModels ` +
- `from ${url}: ${error.message}`);
-
- this.setState({
- ...this.state,
- errorMessages,
- });
- });
- }
-
-
private static getDispatcherPrefix(): string {
const dataElem: HTMLElement | null = document
@@ -762,6 +655,184 @@ class PageModelEditor
}
}
+ constructor(props: any) {
+
+ super(props);
+
+ // this.state = {
+ // // selectedPageModel: newPageModel,
+ // context: {
+ // pageModelSelected: false,
+ // selectedPageModel: newPageModel,
+ // },
+ // };
+ this.state = {
+ errorMessages: [],
+ pageModels: [],
+ selectedPageModel: null,
+ };
+
+ this.createNewPageModel = this.createNewPageModel.bind(this);
+ this.selectPageModel = this.selectPageModel.bind(this);
+ }
+
+ public componentDidMount() {
+
+ this.fetchPageModels();
+ }
+
+ public render(): React.ReactNode {
+
+ return
+
+
+
+
+
+
+
+ Available PageModels
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {this.state.errorMessages.length > 0 &&
+
+ {this.state.errorMessages.map((msg) => {
+ return
+ {msg}
+
;
+ })}
+
+ }
+ {this.state.selectedPageModel !== null &&
+
{
+ this.reload();
+ }} />
+ }
+
+
+ ;
+ }
+
+ private createNewPageModel(
+ event: React.MouseEvent): void {
+
+ event.preventDefault();
+
+ this.setState({
+ ...this.state,
+ selectedPageModel: {
+ containers: [],
+ description: "",
+ lastModified: 0,
+ lastPublished: 0,
+ modelUuid: "",
+ name: "",
+ pageModelId: 0,
+ publicationStatus: PublicationStatus.NOT_PUBLISHED.toString(),
+ title: "",
+ type: "",
+ uuid: "",
+ version: PageModelVersion.DRAFT,
+ },
+ });
+ }
+
+ private fetchPageModels(): void {
+
+ const init: RequestInit = {
+ credentials: "same-origin",
+ method: "GET",
+ };
+
+ const url: string = `${PageModelEditor.getDispatcherPrefix()}`
+ + `/page-models/${PageModelEditor.getCcmApplication()}`;
+
+ fetch(url, init)
+ .then((response) => {
+ if (response.ok) {
+ response
+ .json()
+ .then((pageModels: PageModel[]) => {
+ this.setState({
+ ...this.state,
+ pageModels,
+ });
+ })
+ .catch((error) => {
+ const errorMessages: string[] = this
+ .state.errorMessages;
+ errorMessages.push(`Failed to retrieve PageModels `
+ + `from ${url}: ${error.message}`);
+
+ this.setState({
+ ...this.state,
+ errorMessages,
+ });
+ });
+ } else {
+ const errorMessages: string[] = this
+ .state.errorMessages;
+ errorMessages.push(`Failed to retrieve PageModels from `
+ + `\"${url}\": HTTP Status Code: `
+ + `${response.status}; `
+ + `message: ${response.statusText}`);
+
+ this.setState({
+ ...this.state,
+ errorMessages,
+ });
+ }
+ })
+ .catch((error) => {
+ const errorMessages: string[] = this
+ .state.errorMessages;
+ errorMessages.push(`Failed to retrieve PageModels ` +
+ `from ${url}: ${error.message}`);
+
+ this.setState({
+ ...this.state,
+ errorMessages,
+ });
+ });
+ }
+
private reload(): void {
this.fetchPageModels();
@@ -771,6 +842,17 @@ class PageModelEditor
// });
}
+ private selectPageModel(selectedPageModel: PageModel): void {
+
+ this.setState(
+ (state: PageModelEditorState) => {
+ return {
+ ...state,
+ selectedPageModel,
+ };
+ });
+ }
+
// private setSelectedPageModel(selectedPageModel: PageModel): void {
//
// this.setState((state: any) => {
diff --git a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/datatypes.ts b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/datatypes.ts
index 48390d0e1..c9c565fba 100644
--- a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/datatypes.ts
+++ b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/datatypes.ts
@@ -9,7 +9,7 @@ interface ContainerModel {
interface PageModel {
- containers: ContainerModel[],
+ containers: ContainerModel[];
description: string;
modelUuid: string;
name: string;
@@ -34,4 +34,4 @@ enum PublicationStatus {
NOT_PUBLISHED = "NOT_PUBLISHED",
PUBLISHED = "PUBLISHED",
NEEDS_UPDATE = "NEEDS_UPDATE",
-}
\ No newline at end of file
+}
diff --git a/ccm-pagemodelseditor/tslint.json b/ccm-pagemodelseditor/tslint.json
index e437be29b..3e8e90f2b 100644
--- a/ccm-pagemodelseditor/tslint.json
+++ b/ccm-pagemodelseditor/tslint.json
@@ -12,7 +12,7 @@
"options": [100]
},
"max-line-length": {
- "options": [120]
+ "options": [80]
}
},
"rulesDirectory": []
diff --git a/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css b/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css
index eea88ef7f..ae0e173a6 100644
--- a/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css
+++ b/ccm-theme-foundry/src/main/resources/themes/foundry/foundry/styles/admin.css
@@ -2039,3 +2039,16 @@ form.pagemodeleditor.propertiesForm {
display: flex;
flex-direction: column;
}
+
+/* dialog.pageModelEditor {
+
+ background-color: #fff;
+
+ border-radius: 5%;
+
+ position: fixed;
+ top: 5em;
+ right: 5em;
+ bottom: 5em;
+ left: 5em;
+} */