You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2020/09/04 15:55:42 UTC
[sling-org-apache-sling-app-cms] branch
SLING-8913-multiple-instance-types updated: Adding UI for importers,
exports and agents
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
The following commit(s) were added to refs/heads/SLING-8913-multiple-instance-types by this push:
new 7fa6f9b Adding UI for importers, exports and agents
7fa6f9b is described below
commit 7fa6f9bd3bf2bd95cc5ba06d582bcf6b10a3d6c2
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Sep 4 11:55:26 2020 -0400
Adding UI for importers, exports and agents
---
feature/src/main/features/distribution.json | 12 +--
.../components/cms/contentgrid/contentgrid.jsp | 5 +-
.../components/cms/contenttable/contenttable.jsp | 3 +-
.../sling-cms/components/cms/tilecard/tilecard.jsp | 35 +++++++
.../libs/sling-cms/components/cms/tiles/tiles.jsp | 26 +++++
.../components/publication/agent/agent.jsp | 112 +++++++++++++++++++++
.../publication/configuration/configuration.jsp | 36 +++++++
.../configurationarray/configurationarray.jsp | 33 ++++++
.../components/publication/exporter/exporter.jsp | 66 ++++++++++++
.../sling-cms/components/publication/home/home.jsp | 26 +++++
.../components/publication/importer/importer.jsp | 66 ++++++++++++
.../status/status.jsp} | 0
.../libs/sling-cms/content/publication/agent.json | 94 +++++++++++++++++
.../libs/sling-cms/content/publication/agents.json | 57 +++++++++++
.../sling-cms/content/publication/exporter.json | 69 +++++++++++++
.../sling-cms/content/publication/exporters.json | 57 +++++++++++
.../libs/sling-cms/content/publication/home.json | 53 ++++++++++
.../sling-cms/content/publication/importer.json | 45 +++++++++
.../sling-cms/content/publication/importers.json | 57 +++++++++++
.../libs/sling-cms/content/shared/publish.json | 2 +-
.../libs/sling-cms/content/shared/unpublish.json | 2 +-
.../jcr_root/libs/sling-cms/content/start.json | 11 ++
22 files changed, 855 insertions(+), 12 deletions(-)
diff --git a/feature/src/main/features/distribution.json b/feature/src/main/features/distribution.json
index 52d467f..bf9080a 100644
--- a/feature/src/main/features/distribution.json
+++ b/feature/src/main/features/distribution.json
@@ -12,27 +12,27 @@
],
"configurations": {
"org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~agent": {
- "provider.roots": "/libs/sling-cms/content/distribution/services/agents",
+ "provider.roots": "/libs/sling/distribution/settings/agents",
"kind": "agent"
},
"org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~exporter": {
- "provider.roots": "/libs/sling-cms/content/distribution/services/exporters",
+ "provider.roots": "/libs/sling/distribution/settings/exporters",
"kind": "exporter"
},
"org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~importer": {
- "provider.roots": "/libs/sling-cms/content/distribution/services/importers",
+ "provider.roots": "/libs/sling/distribution/settings/importers",
"kind": "importer"
},
"org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~agent": {
- "provider.roots": "/libs/sling-cms/content/distribution/services/agents",
+ "provider.roots": "/libs/sling/distribution/services/agents",
"kind": "agent"
},
"org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~exporter": {
- "provider.roots": "/libs/sling-cms/content/distribution/services/exporter",
+ "provider.roots": "/libs/sling/distribution/services/exporter",
"kind": "exporter"
},
"org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~importer": {
- "provider.roots": "/libs/sling-cms/content/distribution/services/importer",
+ "provider.roots": "/libs/sling/distribution/services/importer",
"kind": "importer"
},
"org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~distribution": {
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
index b122bab..e680f54 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
@@ -82,9 +82,8 @@
<div class="card-footer-item card-footer-group">
<span>${sling:encode(title,'HTML')}</span>
<c:catch var="ex">
- <small>
- <fmt:formatDate type="both" dateStyle="long" timeStyle="long" value = "${child.valueMap['jcr:content/jcr:lastModified'].time}" />
- </small>
+ <fmt:formatDate type="both" dateStyle="long" timeStyle="long" value = "${child.valueMap['jcr:content/jcr:lastModified'].time}" var="lastMod" />
+ <small>${lastMod}</small>
</c:catch>
</div>
</footer>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
index ba5540e..a4fcab0 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
@@ -35,7 +35,8 @@
<c:set var="parentPath" value="${slingRequest.requestPathInfo.suffix}${not empty properties.appendSuffix ? properties.appendSuffix : ''}" />
<c:set var="count" value="1" />
<c:forEach var="child" items="${sling:listChildren(sling:getResource(resourceResolver, parentPath))}" varStatus="status">
- <sling:getResource var="typeConfig" base="${resource}" path="types/${child.valueMap['jcr:primaryType']}" />
+ <c:set var="type" value="${not empty child.valueMap['jcr:primaryType'] ? child.valueMap['jcr:primaryType'] : fn:replace(child.resourceType,'/','-')}" />
+ <sling:getResource var="typeConfig" base="${resource}" path="types/${type}" />
<c:if test="${typeConfig != null && !fn:contains(child.name,':')}">
<tr class="contentnav__item sortable__row" data-resource="${child.path}" data-type="${typeConfig.path}">
<td class="Cell-Static" title="# ${status.index + 1}" data-sort-value="<fmt:formatNumber pattern="0000" value="${count}" />">
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
new file mode 100644
index 0000000..fb3a9e2
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
@@ -0,0 +1,35 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+ <%@include file="/libs/sling-cms/global.jsp"%>
+<div class="tile is-parent is-3 contentnav__item">
+ <div class="tile is-child">
+ <div class="card is-linked" title="${sling:encode(properties.title,'HTML_ATTR')}" data-value="${resource.path}">
+ <div class="card-image">
+ <figure class="image is-5by4">
+ <img src="${sling:encode(properties.image,'HTML_ATTR')}" loading="lazy" alt="${sling:encode(properties.title,'HTML_ATTR')}">
+ </figure>
+ </div>
+ <footer class="card-footer">
+ <a class="card-footer-item" href="${sling:encode(properties.link,'HTML_ATTR')}" title="${sling:encode(properties.title,'HTML')}">
+ ${sling:encode(properties.title,'HTML')}
+ </a>
+ </footer>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tiles/tiles.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tiles/tiles.jsp
new file mode 100644
index 0000000..ff7d4fb
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tiles/tiles.jsp
@@ -0,0 +1,26 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+ <%@include file="/libs/sling-cms/global.jsp"%>
+<div class="scroll-container contentnav">
+ <div class="tile is-ancestor">
+ <c:forEach var="child" items="${sling:listChildren(resource)}">
+ <sling:include resource="${child}" />
+ </c:forEach>
+ </div>
+</div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/agent/agent.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/agent/agent.jsp
new file mode 100644
index 0000000..a1b581d
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/agent/agent.jsp
@@ -0,0 +1,112 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<c:set var="agent" value="${slingRequest.requestPathInfo.suffixResource}" />
+<c:set var="agentCfg" value="${agent.valueMap}" />
+<nav class="breadcrumb" aria-label="breadcrumbs">
+ <ul>
+ <li>
+ <a href="/cms/publication/home.html">
+ Publication
+ </a>
+ </li>
+ <li>
+ <a href="/cms/publication/agents.html/libs/sling/distribution/settings/agents">
+ Agents
+ </a>
+ </li>
+ <li class="is-active">
+ <a href="#">
+ <sling:encode value="${agentCfg.title}" mode="HTML" />
+ </a>
+ </li>
+ </ul>
+</nav>
+<h1 class="title">
+ <sling:encode value="${agentCfg.title}" mode="HTML" />
+</h1>
+<h2 class="subtitle">
+ <sling:encode value="${agent.name}" mode="HTML" />
+</h2>
+<div class="scroll-container">
+ <c:if test="${not empty agentCfg.details}">
+ <p>
+ <sling:encode value="${agent.name}" mode="HTML" />
+ </p>
+ </c:if>
+ <div class="columns">
+ <div class="column is-6">
+ <article class="message is-light">
+ <div class="message-header">
+ <p>Configuration</p>
+ </div>
+ <div class="message-body">
+ <dl>
+ <sling:getResource base="${resource}" path="configuration" var="configuration" />
+ <c:set var="config" value="${agentCfg}" scope="request" />
+ <c:forEach var="configRsrc" items="${sling:listChildren(configuration)}">
+ <sling:include resource="${configRsrc}" />
+ </c:forEach>
+ </dl>
+ <a class="button" href="/system/console/configMgr/${agentCfg['service.pid']}">Edit</a>
+ </div>
+ </article>
+ </div>
+ <div class="column is-6">
+ <c:forEach var="url" items="${agentCfg['packageImporter.endpoints']}" varStatus="status">
+ <article class="message is-light">
+ <sling:getResource var="queue" path="/libs/sling/distribution/services/agents/${agent.name}/queues/endpoint${status.index}" />
+ <div class="message-header">
+ <p>Queue #${status.index + 1}</p>
+ </div>
+ <div class="message-body">
+ <dl>
+ <dt>Endpoint URL</dt>
+ <dd>
+ <sling:encode value="${url}" mode="HTML" />
+ </dd>
+ <dt>Count</dt>
+ <dd>
+ <sling:encode value="${queue.valueMap.itemsCount}" mode="HTML" />
+ </dd>
+ <dt>State</dt>
+ <dd>
+ <sling:encode value="${queue.valueMap.state}" mode="HTML" />
+ </dd>
+ </dl>
+ </div>
+ </article>
+ </c:forEach>
+ </div>
+ </div>
+
+ <article class="message is-light">
+ <div class="message-header">
+ <p>Logs</p>
+ </div>
+ <div class="message-body">
+ <figure class="image is-16by9">
+ <iframe class="has-ratio" src="/libs/sling/distribution/services/agents/${agent.name}/log.txt"></iframe>
+ </figure>
+ </div>
+ </article>
+
+</div>
+
+
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configuration/configuration.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configuration/configuration.jsp
new file mode 100644
index 0000000..d02ecec
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configuration/configuration.jsp
@@ -0,0 +1,36 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<c:if test="${not empty config[properties.key]}">
+ <dt>
+ <sling:encode value="${properties.title}" mode="HTML" />
+ </dt>
+ <dd>
+ <c:choose>
+ <c:when test="${not empty properties.objectClass}">
+ <a href="/system/console/services?filter=%28%26%28objectClass%3D${properties.objectClass}%29%28name%3D${sling:encode(config[properties.key],'HTML_ATTR')}%29%29">
+ <sling:encode value="${config[properties.key]}" mode="HTML" />
+ </a>
+ </c:when>
+ <c:otherwise>
+ <sling:encode value="${config[properties.key]}" mode="HTML" />
+ </c:otherwise>
+ </c:choose>
+ </dd>
+</c:if>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configurationarray/configurationarray.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configurationarray/configurationarray.jsp
new file mode 100644
index 0000000..191bb99
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configurationarray/configurationarray.jsp
@@ -0,0 +1,33 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<c:if test="${config[properties.key] != null && fn:length(config[properties.key]) > 0 && not empty config[properties.key][0]}">
+ <dt>
+ <sling:encode value="${properties.title}" mode="HTML" />
+ </dt>
+ <dd>
+ <ul>
+ <c:forEach var="item" items="${config[properties.key]}">
+ <li>
+ <sling:encode value="${item}" mode="HTML" />
+ </li>
+ </c:forEach>
+ </ul>
+ </dd>
+</c:if>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/exporter/exporter.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/exporter/exporter.jsp
new file mode 100644
index 0000000..426f9bc
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/exporter/exporter.jsp
@@ -0,0 +1,66 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<c:set var="exporter" value="${slingRequest.requestPathInfo.suffixResource}" />
+<c:set var="exporterCfg" value="${exporter.valueMap}" />
+<nav class="breadcrumb" aria-label="breadcrumbs">
+ <ul>
+ <li>
+ <a href="/cms/publication/home.html">
+ Publication
+ </a>
+ </li>
+ <li>
+ <a href="/cms/publication/exporters.html/libs/sling/distribution/settings/exporters">
+ Exporters
+ </a>
+ </li>
+ <li class="is-active">
+ <a href="#">
+ <sling:encode value="${exporterCfg.name}" mode="HTML" />
+ </a>
+ </li>
+ </ul>
+</nav>
+<h1 class="title">
+ <sling:encode value="${exporterCfg.name}" mode="HTML" />
+</h1>
+<div class="scroll-container">
+ <div class="columns">
+ <div class="column is-6">
+ <article class="message is-light">
+ <div class="message-header">
+ <p>Configuration</p>
+ </div>
+ <div class="message-body">
+ <dl>
+ <sling:getResource base="${resource}" path="configuration" var="configuration" />
+ <c:set var="config" value="${exporterCfg}" scope="request" />
+ <c:forEach var="configRsrc" items="${sling:listChildren(configuration)}">
+ <sling:include resource="${configRsrc}" />
+ </c:forEach>
+ </dl>
+ <a class="button" href="/system/console/configMgr/${exporterCfg['service.pid']}">Edit</a>
+ </div>
+ </article>
+ </div>
+ </div>
+</div>
+
+
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/home/home.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/home/home.jsp
new file mode 100644
index 0000000..51cc8fe
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/home/home.jsp
@@ -0,0 +1,26 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<sling:adaptTo adaptable="${resourceResolver}" adaptTo="org.apache.sling.cms.publication.PublicationManager" var="publicationManager" />
+<br/>
+<dl>
+ <dt>Publication Mode</dt>
+ <dd>${publicationManager.publicationMode}</dd>
+</dl>
+<br/>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/importer/importer.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/importer/importer.jsp
new file mode 100644
index 0000000..f54a9bc
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/importer/importer.jsp
@@ -0,0 +1,66 @@
+<%-- /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */ --%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<c:set var="importer" value="${slingRequest.requestPathInfo.suffixResource}" />
+<c:set var="importerCfg" value="${importer.valueMap}" />
+<nav class="breadcrumb" aria-label="breadcrumbs">
+ <ul>
+ <li>
+ <a href="/cms/publication/home.html">
+ Publication
+ </a>
+ </li>
+ <li>
+ <a href="/cms/publication/importers.html/libs/sling/distribution/settings/importers">
+ Importers
+ </a>
+ </li>
+ <li class="is-active">
+ <a href="#">
+ <sling:encode value="${importerCfg.name}" mode="HTML" />
+ </a>
+ </li>
+ </ul>
+</nav>
+<h1 class="title">
+ <sling:encode value="${importerCfg.name}" mode="HTML" />
+</h1>
+<div class="scroll-container">
+ <div class="columns">
+ <div class="column is-6">
+ <article class="message is-light">
+ <div class="message-header">
+ <p>Configuration</p>
+ </div>
+ <div class="message-body">
+ <dl>
+ <sling:getResource base="${resource}" path="configuration" var="configuration" />
+ <c:set var="config" value="${importerCfg}" scope="request" />
+ <c:forEach var="configRsrc" items="${sling:listChildren(configuration)}">
+ <sling:include resource="${configRsrc}" />
+ </c:forEach>
+ </dl>
+ <a class="button" href="/system/console/configMgr/${importerCfg['service.pid']}">Edit</a>
+ </div>
+ </article>
+ </div>
+ </div>
+</div>
+
+
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/publicationstatus/publicationstatus.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/status/status.jsp
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/publicationstatus/publicationstatus.jsp
rename to ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/status/status.jsp
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/agent.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/agent.json
new file mode 100644
index 0000000..d9f5a11
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/agent.json
@@ -0,0 +1,94 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Publication Agent",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "agent": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/agent",
+ "configuration": {
+ "jcr:primaryType": "nt:unstructured",
+ "enabled": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Enabled",
+ "key": "enabled"
+ },
+ "allowedRoots": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configurationarray",
+ "title": "Allowed Roots",
+ "key": "allowed.roots"
+ },
+ "async-delivery": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Async Delivery",
+ "key": "async.delivery"
+ },
+ "http-conn-timeout": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Connection Timeout",
+ "key": "http.conn.timeout"
+ },
+ "log-level": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Log Level",
+ "key": "log.level"
+ },
+ "packageBuilder-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Package Builder Target",
+ "objectName": "org.apache.sling.distribution.packaging.DistributionPackageBuilder",
+ "key": "packageBuilder.target"
+ },
+ "priorityQueues": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configurationarray",
+ "title": "Priority Queues",
+ "key": "priorityQueues"
+ },
+ "queue-provider": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Queue Provider",
+ "key": "queue.provider"
+ },
+ "queue-processing-enabled": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Queue Processing Enabled",
+ "key": "queue.processing.enabled"
+ },
+ "requestAuthorizationStrategy-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Request Authorization Strategy Target",
+ "objectName": "org.apache.sling.distribution.agent.impl.DistributionRequestAuthorizationStrategy",
+ "key": "requestAuthorizationStrategy.target"
+ },
+ "transportSecretProvider-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Transport Secret Provider Target",
+ "objectName": "org.apache.sling.distribution.transport.DistributionTransportSecretProvider",
+ "key": "transportSecretProvider.target"
+ },
+ "type": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Type",
+ "key": "type"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/agents.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/agents.json
new file mode 100644
index 0000000..b23af79
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/agents.json
@@ -0,0 +1,57 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Publication Agents",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "richtext": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/richtext",
+ "text": "<nav class=\"breadcrumb\" aria-label=\"breadcrumbs\"><ul><li><a href=\"/cms/publication/home.html\">Publication</a></li><li class=\"is-active\"><a href=\"#\">Agents</a></li></ul></nav>"
+ },
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {}
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Name"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Title"
+ }
+ },
+ "types": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling-distribution-setting": {
+ "jcr:primaryType": "nt:unstructured",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "link": true,
+ "prefix": "/cms/publication/agent.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "title"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/exporter.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/exporter.json
new file mode 100644
index 0000000..9877b28
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/exporter.json
@@ -0,0 +1,69 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Publication Exporter",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "exporter": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/exporter",
+ "configuration": {
+ "jcr:primaryType": "nt:unstructured",
+ "agent-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Agent Target",
+ "key": "agent.target"
+ },
+ "drop-invalid-items": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Drop invalid queue items",
+ "key": "drop.invalid.items"
+ },
+ "endpoints": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configurationarray",
+ "title": "Endpoints",
+ "key": "endpoints"
+ },
+ "packageBuilder-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Package Builder Target",
+ "objectName": "org.apache.sling.distribution.packaging.DistributionPackageBuilder",
+ "key": "packageBuilder.target"
+ },
+ "pull-items": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Pull Items",
+ "key": "pull.items"
+ },
+ "queue": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Queue",
+ "key": "queue"
+ },
+ "transportSecretProvider-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Transport Secret Provider Target",
+ "objectName": "org.apache.sling.distribution.transport.DistributionTransportSecretProvider",
+ "key": "transportSecretProvider.target"
+ },
+ "type": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Type",
+ "key": "type"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/exporters.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/exporters.json
new file mode 100644
index 0000000..c9a7f10
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/exporters.json
@@ -0,0 +1,57 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Publication Exporters",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "richtext": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/richtext",
+ "text": "<nav class=\"breadcrumb\" aria-label=\"breadcrumbs\"><ul><li><a href=\"/cms/publication/home.html\">Publication</a></li><li class=\"is-active\"><a href=\"#\">Exporters</a></li></ul></nav>"
+ },
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {}
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Name"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Title"
+ }
+ },
+ "types": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling-distribution-setting": {
+ "jcr:primaryType": "nt:unstructured",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "link": true,
+ "prefix": "/cms/publication/exporter.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "title"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/home.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/home.json
new file mode 100644
index 0000000..d628749
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/home.json
@@ -0,0 +1,53 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Publication",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "richtext": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/richtext",
+ "text": "<h3>Publication</h3>"
+ },
+ "pubhome": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/home"
+ },
+ "tiles": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/tiles",
+ "agents": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/tilecard",
+ "image": "/static/sling-cms/thumbnails/publish-agent.png.transform/sling-cms-thumbnail.png",
+ "link": "/cms/publication/agents.html/libs/sling/distribution/settings/agents",
+ "title": "Agents"
+ },
+ "bulk-publication": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/tilecard",
+ "image": "/static/sling-cms/thumbnails/bulk-publication.png.transform/sling-cms-thumbnail.png",
+ "link": "/cms/publication/bulk-publication.html",
+ "title": "Bulk Publication"
+ },
+ "exporters": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/tilecard",
+ "image": "/static/sling-cms/thumbnails/exporter.png.transform/sling-cms-thumbnail.png",
+ "link": "/cms/publication/exporters.html/libs/sling/distribution/settings/exporters",
+ "title": "Exporters"
+ },
+ "importers": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/tilecard",
+ "image": "/static/sling-cms/thumbnails/importer.png.transform/sling-cms-thumbnail.png",
+ "link": "/cms/publication/importers.html/libs/sling/distribution/settings/importers",
+ "title": "Importers"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/importer.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/importer.json
new file mode 100644
index 0000000..68d1a9d
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/importer.json
@@ -0,0 +1,45 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Publication Importer",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "importer": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/importer",
+ "configuration": {
+ "jcr:primaryType": "nt:unstructured",
+ "enabled": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configurationarray",
+ "title": "Endpoints",
+ "key": "endpoints"
+ },
+ "packageBuilder-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Package Builder Target",
+ "objectName": "org.apache.sling.distribution.packaging.DistributionPackageBuilder",
+ "key": "packageBuilder.target"
+ },
+ "transportSecretProvider-target": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Transport Secret Provider Target",
+ "objectName": "org.apache.sling.distribution.transport.DistributionTransportSecretProvider",
+ "key": "transportSecretProvider.target"
+ },
+ "type": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/publication/configuration",
+ "title": "Type",
+ "key": "type"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/importers.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/importers.json
new file mode 100644
index 0000000..ac6971c
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/publication/importers.json
@@ -0,0 +1,57 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Publication Importers",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "richtext": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/richtext",
+ "text": "<nav class=\"breadcrumb\" aria-label=\"breadcrumbs\"><ul><li><a href=\"/cms/publication/home.html\">Publication</a></li><li class=\"is-active\"><a href=\"#\">Importers</a></li></ul></nav>"
+ },
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {}
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Name"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Title"
+ }
+ },
+ "types": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling-distribution-setting": {
+ "jcr:primaryType": "nt:unstructured",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "link": true,
+ "prefix": "/cms/publication/importer.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "title"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/publish.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/publish.json
index 04bf291..0559aa8 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/publish.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/publish.json
@@ -9,7 +9,7 @@
"sling:resourceType": "sling-cms/components/general/container",
"publicationstatus": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/publicationstatus"
+ "sling:resourceType": "sling-cms/components/publication/status"
},
"slingform": {
"jcr:primaryType": "nt:unstructured",
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/unpublish.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/unpublish.json
index 06e44a4..52dad53 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/unpublish.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/unpublish.json
@@ -9,7 +9,7 @@
"sling:resourceType": "sling-cms/components/general/container",
"publicationstatus": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/publicationstatus"
+ "sling:resourceType": "sling-cms/components/publication/status"
},
"slingform": {
"jcr:primaryType": "nt:unstructured",
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/start.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/start.json
index 6fb313d..a584ae4 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/start.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/start.json
@@ -138,6 +138,17 @@
"link": "/bin/browser.html",
"text": "Node Browser"
},
+ "publication": {
+ "jcr:primaryType": "nt:unstructured",
+ "alternatives": [
+ "/cms/publication"
+ ],
+ "enabledGroups": [
+ "publishers"
+ ],
+ "link": "/cms/publication/home.html",
+ "text": "Publication"
+ },
"systemconsole": {
"jcr:primaryType": "nt:unstructured",
"enabledGroups": [