diff --git a/ccm-core/src/main/java/org/libreccm/pagemodel/rs/Components.java b/ccm-core/src/main/java/org/libreccm/pagemodel/rs/Components.java index d48759b99..df91497bc 100644 --- a/ccm-core/src/main/java/org/libreccm/pagemodel/rs/Components.java +++ b/ccm-core/src/main/java/org/libreccm/pagemodel/rs/Components.java @@ -326,9 +326,15 @@ public class Components { | InvocationTargetException ex) { throw new WebApplicationException(ex); } + + final String valueStr; + if (value == null) { + valueStr = ""; + } else { + valueStr = value.toString(); + } - objectBuilder.add(propertyDescriptor.getName(), - value.toString()); + objectBuilder.add(propertyDescriptor.getName(), valueStr); } diff --git a/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java b/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java index f4bbfa471..d242ee713 100644 --- a/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java +++ b/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java @@ -19,9 +19,11 @@ package org.libreccm.pagemodel.rs; import com.arsdigita.kernel.KernelConfig; + import org.libreccm.configuration.ConfigurationManager; import org.libreccm.core.CoreConstants; import org.libreccm.l10n.GlobalizationHelper; +import org.libreccm.pagemodel.ComponentModel; import org.libreccm.pagemodel.ContainerModel; import org.libreccm.pagemodel.PageModel; import org.libreccm.pagemodel.PageModelManager; @@ -47,6 +49,7 @@ import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; + import java.util.Date; import java.util.List; import java.util.Objects; @@ -338,7 +341,7 @@ public class PageModels { .add("uuid", container.getUuid()) .build(); } - + /** * Check if the {@link PublicationStatus} of the provided PageModel. * diff --git a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx index d9724ce06..3e6d389e2 100644 --- a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx +++ b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx @@ -568,7 +568,8 @@ class ContainerListComponent container={container} deleteContainer={this.deleteContainer} dispatcherPrefix={this.props.dispatcherPrefix} - errorMsg="" />) + errorMsg="" + pageModelName={this.props.pageModelName} />) //
  • // {container.key} // +
    + {this.props.container.key} + +
    +
    + +
  • } + private fetchComponents(): void { + + const componentsUrl = `${this.props.dispatcherPrefix}` + + `/page-models/${this.props.ccmApplication}` + + `/${this.props.pageModelName}` + + `/containers/${this.props.container.key}` + + `/components`; + + const init: RequestInit = { + credentials: "same-origin", + method: "GET", + }; + + fetch(componentsUrl, init) + .then((response) => { + if (response.ok) { + + response + .json() + .then((components) => { + + this.setState({ + ...this.state, + components, + }); + }) + .catch((error) => { + const errorMessages: string[] = this + .state.errorMessages; + errorMessages.push(`Failed to retrieve PageModels ` + + `from ${componentsUrl}: ${error.message}`); + + this.setState({ + ...this.state, + errorMessages, + }); + }); + } else { + const errorMessages: string[] = this + .state.errorMessages; + errorMessages.push(`Failed to retrieve PageModels from ` + + `\"${componentsUrl}\": 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 ${componentsUrl}: ${error.message}`); + + this.setState({ + ...this.state, + errorMessages, + }); + }); + } + private deleteContainer( event: React.MouseEvent, containerKey: string): void { @@ -819,7 +914,6 @@ interface ComponentInfo { label: string; } - class PageModelEditor extends React.Component<{}, PageModelEditorState> {