X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=knowledge%2Forg.argeo.support.odk%2Fsrc%2Forg%2Fargeo%2Fsupport%2Fodk%2Fservlet%2FOdkFormListServlet.java;fp=knowledge%2Forg.argeo.support.odk%2Fsrc%2Forg%2Fargeo%2Fsupport%2Fodk%2Fservlet%2FOdkFormListServlet.java;h=7c752c7ed60c4a51b4b4a336d3d22a1fc0a64994;hp=f829c12f92eba407afd9238c6fcceaabb2454a5a;hb=384e41caf78222c53e5cf365bb93310e5b28462b;hpb=65030067b0125a4399f58b897b78debded2984d3 diff --git a/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java index f829c12..7c752c7 100644 --- a/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java +++ b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkFormListServlet.java @@ -2,9 +2,6 @@ package org.argeo.support.odk.servlet; import java.io.IOException; import java.io.Writer; -import java.time.ZoneId; -import java.time.ZoneOffset; -import java.time.format.DateTimeFormatter; import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -28,11 +25,10 @@ import org.argeo.api.NodeConstants; import org.argeo.cms.servlet.ServletAuthUtils; import org.argeo.entity.EntityType; import org.argeo.jcr.Jcr; -import org.argeo.jcr.JcrUtils; import org.argeo.jcr.JcrxApi; import org.argeo.support.odk.OdkForm; -import org.argeo.support.odk.OdkNames; -import org.argeo.support.odk.OrxListType; +import org.argeo.support.odk.OrxListName; +import org.argeo.support.odk.OrxManifestName; /** Lists available forms. */ public class OdkFormListServlet extends HttpServlet { @@ -41,8 +37,8 @@ public class OdkFormListServlet extends HttpServlet { private Set odkForms = Collections.synchronizedSet(new HashSet<>()); - private DateTimeFormatter versionFormatter = DateTimeFormatter.ofPattern("YYYY-MM-dd-HHmm") - .withZone(ZoneId.from(ZoneOffset.UTC)); +// private DateTimeFormatter versionFormatter = DateTimeFormatter.ofPattern("YYYY-MM-dd-HHmm") +// .withZone(ZoneId.from(ZoneOffset.UTC)); private Repository repository; @@ -72,11 +68,11 @@ public class OdkFormListServlet extends HttpServlet { // query = session.getWorkspace().getQueryManager() // .createQuery("SELECT * FROM [nt:unstructured]", Query.JCR_SQL2); query = session.getWorkspace().getQueryManager() - .createQuery("SELECT * FROM [" + OrxListType.xform.get() + "]", Query.JCR_SQL2); + .createQuery("SELECT * FROM [" + OrxListName.xform.get() + "]", Query.JCR_SQL2); } else { query = session.getWorkspace().getQueryManager() .createQuery( - "SELECT node FROM [" + OrxListType.xform.get() + "SELECT node FROM [" + OrxListName.xform.get() + "] AS node WHERE ISDESCENDANTNODE (node, '" + pathInfo + "')", Query.JCR_SQL2); } @@ -92,21 +88,23 @@ public class OdkFormListServlet extends HttpServlet { while (nit.hasNext()) { StringBuilder sb = new StringBuilder(); Node node = nit.nextNode(); - if (node.isNodeType(OrxListType.xform.get())) { + if (node.isNodeType(OrxListName.xform.get())) { sb.append(""); - sb.append("" - + node.getNode(OdkNames.H_HTML + "/h:head/xforms:model/xforms:instance/xforms:data") - .getProperty("id").getString() - + ""); + sb.append("" + node.getProperty(OrxListName.formID.get()).getString() + ""); sb.append("" + Jcr.getTitle(node) + ""); - sb.append("" + versionFormatter.format(JcrUtils.getModified(node)) + ""); -// sb.append("" + versionFormatter.format(JcrUtils.getModified(node)) + ""); + sb.append("" + node.getProperty(OrxListName.version.get()).getString() + ""); sb.append("md5:" + JcrxApi.getChecksum(node, JcrxApi.MD5) + ""); if (node.hasProperty(Property.JCR_DESCRIPTION)) sb.append("" + node.getProperty(Property.JCR_DESCRIPTION).getString() + ""); sb.append("" + protocol + "://" + serverName + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/form/" + node.getPath() + ""); + if (node.hasNode(OrxManifestName.manifest.name())) { + sb.append("" + protocol + "://" + serverName + + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + + "/api/odk/formManifest" + node.getNode(OrxManifestName.manifest.name()).getPath() + + ""); + } sb.append(""); } else if (node.isNodeType(EntityType.formSet.get())) { sb.append("");