import org.argeo.ArgeoException;
import org.argeo.cms.auth.AuthConstants;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.util.CmsUtils;
import org.argeo.eclipse.ui.specific.UiContext;
import org.argeo.jcr.JcrUtils;
import org.eclipse.rap.rwt.RWT;
title = getBaseTitle();
HttpServletRequest request = RWT.getRequest();
- String url = request.getRequestURL().append('!')
- .append(node.getPath()).toString();
+ String url = CmsUtils.getCanonicalUrl(node, request);
String imgUrl = null;
for (NodeIterator it = node.getNodes(); it.hasNext();) {
Node child = it.nextNode();
if (child.isNodeType(CmsTypes.CMS_IMAGE))
- imgUrl = request
- .getRequestURL()
- .append("data/public/node/")
- .append(child.getSession().getWorkspace().getName())
- .append(child.getPath()).toString();
+ imgUrl = CmsUtils.getDataUrl(child, request);
}
StringBuilder js = new StringBuilder();
/** @return null if not available */
@Override
public String getImageUrl(Node node) throws RepositoryException {
- String url = "/data/public/node/"
- + node.getSession().getWorkspace().getName() + node.getPath();
- return url;
+ return CmsUtils.getDataPath(node);
+ // String url = "/data/public/node/"
+ // + node.getSession().getWorkspace().getName() + node.getPath();
+ // return url;
// String name = getResourceName(node);
// ResourceManager resourceManager = RWT.getResourceManager();
// if (!resourceManager.isRegistered(name)) {
package org.argeo.cms.util;
+import static org.argeo.cms.internal.kernel.KernelConstants.WEBDAV_PUBLIC;
+import static org.argeo.jcr.ArgeoJcrConstants.ALIAS_NODE;
+
import java.io.InputStream;
import javax.jcr.Item;
import javax.jcr.Node;
import javax.jcr.Property;
import javax.jcr.RepositoryException;
+import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.IOUtils;
import org.argeo.cms.CmsConstants;
return UiContext.getData(CmsView.KEY);
}
+ public static String getDataUrl(Node node, HttpServletRequest request)
+ throws RepositoryException {
+ return request.getRequestURL().append(getDataPath(node).substring(1))
+ .toString();
+ }
+
+ public static String getDataPath(Node node) throws RepositoryException {
+ return new StringBuilder().append(WEBDAV_PUBLIC).append('/')
+ .append(ALIAS_NODE + "/")
+ .append(node.getSession().getWorkspace().getName())
+ .append(node.getPath()).toString();
+ }
+
+ public static String getCanonicalUrl(Node node, HttpServletRequest request)
+ throws RepositoryException {
+ return request.getRequestURL().append('!').append(node.getPath())
+ .toString();
+ }
+
/** @deprecated Use rowData16px() instead. GridData should not be reused. */
@Deprecated
public static RowData ROW_DATA_16px = new RowData(16, 16);