Merging in master
diff --git a/core/pom.xml b/core/pom.xml
index 640e9f2..8362b93 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -183,8 +183,17 @@
<version>${project.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.xss</artifactId>
+ <scope>provided</scope>
+ <version>2.0.0</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>oak-core</artifactId>
</dependency>
</dependencies>
+ <properties>
+ <sling.java.version>8</sling.java.version>
+ </properties>
</project>
\ No newline at end of file
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/BaseModel.java b/core/src/main/java/org/apache/sling/cms/core/models/BaseModel.java
new file mode 100644
index 0000000..fa07fee
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/BaseModel.java
@@ -0,0 +1,86 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.core.models;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.injectorspecific.OSGiService;
+import org.apache.sling.models.annotations.injectorspecific.Self;
+import org.apache.sling.xss.XSSAPI;
+
+@Model(adaptables = { SlingHttpServletRequest.class,
+ Resource.class }, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class BaseModel {
+
+ @OSGiService
+ public XSSAPI xss;
+
+ @Inject
+ @Self
+ public Resource resource;
+
+ @Inject
+ @Self
+ public SlingHttpServletRequest slingRequest;
+
+ private ValueMap valueMap;
+
+ @PostConstruct
+ public void baseResourceModel() {
+ if (resource == null) {
+ resource = slingRequest.getResource();
+ }
+ valueMap = resource.getValueMap();
+ }
+
+ /**
+ * Convenience method for scripting languages such as the JSP EL.
+ *
+ * @param key
+ * @return
+ */
+ public String get(String key) {
+ return valueMap.get(key, "");
+ }
+
+ /**
+ * Convenience method for scripting languages such as the JSP EL.
+ *
+ * @param key
+ * @return
+ */
+ public <T> T get(String key, T def) {
+ return valueMap.get(key, def);
+ }
+
+ /**
+ * Convenience method for scripting languages such as the JSP EL.
+ *
+ * @param key
+ * @return
+ */
+ public <T> T get(String key, Class<T> def) {
+ return valueMap.get(key, def);
+ }
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/Action.java b/core/src/main/java/org/apache/sling/cms/core/models/components/Action.java
new file mode 100644
index 0000000..a7a98cd
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/Action.java
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.core.models.components;
+
+import javax.inject.Inject;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.cms.core.models.BaseModel;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+
+@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class Action extends BaseModel {
+
+ @Inject
+ boolean modal;
+
+ @Inject
+ boolean target;
+
+ public String getClasses() {
+ String response = "button";
+ if (modal) {
+ response += " Fetch-Modal";
+ }
+ return response;
+ }
+
+ public String getTitle() {
+ return xss.encodeForHTMLAttr(get("title"));
+ }
+
+ public String getDataPath() {
+ return get("ajaxPath", ".Main-Content form");
+ }
+
+ public String getIcon() {
+ return String.format("jam jam-%s", get("icon", "file"));
+ }
+
+ public String getTarget() {
+ if (target) {
+ return "target='_blank'";
+ }
+ return "";
+ }
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/Actions.java b/core/src/main/java/org/apache/sling/cms/core/models/components/Actions.java
new file mode 100644
index 0000000..067c078
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/Actions.java
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.core.models.components;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.cms.core.models.BaseModel;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.injectorspecific.Self;
+
+@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class Actions extends BaseModel {
+
+
+ public List<Resource> getChildren() {
+ String type = get("jcr:primaryType", "sling:File");
+ Resource target = slingRequest.getResourceResolver().resolve("/libs/sling-cms/actions/"+type);
+ List<Resource> list = new ArrayList<>();
+ target.listChildren().forEachRemaining(list::add);
+ return list;
+ }
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/Breadcrumbs.java b/core/src/main/java/org/apache/sling/cms/core/models/components/Breadcrumbs.java
new file mode 100644
index 0000000..aab750c
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/Breadcrumbs.java
@@ -0,0 +1,144 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.core.models.components;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.request.RequestPathInfo;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.cms.core.models.BaseModel;
+import org.apache.sling.models.annotations.Default;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.Via;
+
+/**
+ * Logic for the Suffix BreadCrumb Component
+ *
+ *
+ *
+ */
+@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class Breadcrumbs extends BaseModel {
+
+
+ @Inject
+ @Via("resource")
+ @Default(values = "jcr:title")
+ String titleProp;
+
+ Resource suffixResource;
+
+ List<PathData> pathData = new ArrayList<>();
+
+ @PostConstruct
+ public void postConstruct() {
+ suffixResource = slingRequest.getRequestPathInfo().getSuffixResource();
+ String prefix = slingRequest.getRequestURI();
+ if (suffixResource == null) {
+ return;
+ }
+ System.out.println("getContextPath "+slingRequest.getContextPath());
+ System.out.println("getServletPath "+slingRequest.getServletPath());
+ System.out.println("getPathInfo "+slingRequest.getPathInfo());
+ System.out.println("getPathTranslated "+slingRequest.getPathTranslated());
+ System.out.println("getContextPath "+((HttpServletRequest)slingRequest).getContextPath());
+ System.out.println("getServletPath "+((HttpServletRequest)slingRequest).getServletPath());
+ System.out.println("getResolutionPath "+ resource.getResourceMetadata().getResolutionPath());
+ System.out.println("getResolutionPathInfo "+ resource.getResourceMetadata().getResolutionPathInfo());
+ System.out.println("Request Path Info ");
+ RequestPathInfo info = slingRequest.getRequestPathInfo();
+ System.out.println("RequestPath Info - resourcePath " + info.getResourcePath());
+ System.out.println("RequestPath Info - resource Suffix " + info.getSuffix());
+ System.out.println("RequestPath Info - resource Suffix " + info.getSelectorString());
+ System.out.println("Request MetaData Info ");
+
+ prefix = prefix.split(suffixResource.getPath())[0];
+ boolean first = true;
+ while (suffixResource.getParent() != null) {
+ String suffix = suffixResource.getPath();
+ pathData.add(0, new PathData(prefix + suffix, getTitle(suffixResource), first));
+ if (first) {
+ first = false;
+ }
+ suffixResource = suffixResource.getParent();
+ }
+ int depth = get("depth",2);
+ while (--depth > 0) {
+ pathData.remove(0);
+ }
+ }
+
+ private String getTitle(Resource resource) {
+ ValueMap map = resource.getValueMap();
+ String title = map.get("jcr:title", String.class);
+ if (title != null) {
+ return title;
+ }
+ title = map.get("jcr:content/jcr:title", String.class);
+ if (title != null) {
+ return title;
+ }
+ return resource.getName();
+ }
+
+ public List<PathData> getPathData() {
+ return pathData;
+ }
+
+ public static class PathData {
+
+ private String href;
+ private String title;
+ private boolean first;
+
+ public PathData(String href, String title, boolean first) {
+ this.href = href;
+ this.title = title;
+ this.first = first;
+ }
+
+ public String getHref() {
+ return href; // prefix + resource path
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getAria() {
+ if (first) {
+ return "aria-current='page'";
+ }
+ return "";
+ }
+
+ public String getClassAttr() {
+ if (first) {
+ return "class='has-background-grey-lighter'";
+ }
+ return "";
+ }
+ }
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/ContentAction.java b/core/src/main/java/org/apache/sling/cms/core/models/components/ContentAction.java
new file mode 100644
index 0000000..f1a9aba
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/ContentAction.java
@@ -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.
+ */
+package org.apache.sling.cms.core.models.components;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.cms.core.models.BaseModel;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+
+public class ContentAction extends BaseModel {
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/ContentTable.java b/core/src/main/java/org/apache/sling/cms/core/models/components/ContentTable.java
new file mode 100644
index 0000000..95aaecb
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/ContentTable.java
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.core.models.components;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.cms.core.models.BaseModel;
+import org.apache.sling.models.annotations.Default;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.Via;
+
+@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class ContentTable extends BaseModel {
+
+ @Inject
+ @Via("resource")
+ private List<Resource> columns;
+
+ @Inject
+ @Via("resource")
+ @Default(values = "/")
+ private String defaultPath;
+
+
+ public List<ColumnData> getColumnData() {
+ return columns.stream().map(ColumnData::new).collect(Collectors.toList());
+ }
+
+ public List<ChildResourceData> getChildren() {
+ Resource suffix = slingRequest.getRequestPathInfo().getSuffixResource();
+ if (suffix == null) {
+ suffix = slingRequest.getResourceResolver().getResource(defaultPath);
+ if (suffix == null) {
+ return Collections.emptyList();
+ }
+ }
+ List<ChildResourceData> response = new ArrayList<>();
+ suffix.listChildren().forEachRemaining(child -> {
+ if (!child.getName().contains(":")) {
+ response.add(new ChildResourceData(child));
+ }
+ });
+ return response;
+ }
+
+ public class ColumnData {
+
+ private Resource resource;
+
+ private String name;
+
+ public ColumnData(Resource resource) {
+ this.resource = resource;
+ this.name = resource.getName();
+
+ }
+
+ public String getClassString() {
+ String reply = "";
+ switch (name) {
+ case "actions":
+ reply = "is-hidden";
+ break;
+ case "publish":
+ reply = "has-text-centered";
+ break;
+ }
+ return reply;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getTitle() {
+ return resource.getValueMap().get("jcr:title", "foo");
+ }
+
+ public String getFieldResourceType() {
+ return resource.getValueMap().get("sling:resourceType", "foo");
+ }
+
+ public Resource getResource() {
+ return resource;
+ }
+
+ public boolean isEligible() {
+ return true;
+ }
+ }
+
+ public class ChildResourceData {
+
+ private Resource resource;
+
+ public ChildResourceData(Resource resource) {
+ this.resource = resource;
+ }
+
+ public String getPath() {
+ return resource.getPath();
+ }
+
+ public String getDataType() {
+ return resource.getResourceType();
+ }
+
+ public boolean isEligible() {
+ return true;
+ }
+ }
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/SiteNav.java b/core/src/main/java/org/apache/sling/cms/core/models/components/SiteNav.java
new file mode 100644
index 0000000..934cf3a
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/SiteNav.java
@@ -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.
+ */
+package org.apache.sling.cms.core.models.components;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+
+@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class SiteNav {
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/column/LastModified.java b/core/src/main/java/org/apache/sling/cms/core/models/components/column/LastModified.java
new file mode 100644
index 0000000..ab653b3
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/column/LastModified.java
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.core.models.components.column;
+
+import java.util.Calendar;
+
+import javax.annotation.PostConstruct;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.cms.core.models.BaseModel;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+
+@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class LastModified extends BaseModel {
+
+ private String subPath = "";
+
+ @PostConstruct
+ private void init() {
+ if (resource.getChild("jcr:content") != null) {
+ subPath = "jcr:content/";
+ }
+ }
+
+ public String getLastModified() {
+ Calendar cal = get(subPath +"jcr:lastModified",Calendar.class);
+ if (cal == null) {
+ cal = get(subPath +"jcr:created",Calendar.class);
+ if (cal == null) {
+ return "";
+ }
+ }
+ return xss.encodeForHTML(cal.getTime().toString());
+ }
+
+ public String getLastModifiedBy() {
+ String name = get(subPath+"jcr:lastModifiedBy",String.class);
+ if (name == null) {
+ name = get(subPath+"jcr:createdBy","");
+ }
+ return xss.encodeForHTML(name);
+ }
+
+ public String getTitle() {
+ return getLastModified()+" - " + getLastModifiedBy();
+ }
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/column/Name.java b/core/src/main/java/org/apache/sling/cms/core/models/components/column/Name.java
new file mode 100644
index 0000000..92f140f
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/column/Name.java
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.core.models.components.column;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.cms.core.models.BaseModel;
+import org.apache.sling.models.annotations.DefaultInjectionStrategy;
+import org.apache.sling.models.annotations.Model;
+
+@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class Name extends BaseModel {
+
+ public String getIcon() {
+ if (resource.isResourceType("nt:file")) {
+ return "document";
+ }
+ if (resource.isResourceType("nt:folder")) {
+ return "folder";
+ }
+ return "link";
+ }
+
+}
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/package-info.java b/core/src/main/java/org/apache/sling/cms/core/models/package-info.java
index a8c656b..1118341 100644
--- a/core/src/main/java/org/apache/sling/cms/core/models/package-info.java
+++ b/core/src/main/java/org/apache/sling/cms/core/models/package-info.java
@@ -20,7 +20,7 @@
/**
* Package with all of the core models used to support the Sling reference CMS
*/
-@Version("2.0.0")
+@Version("1.1.0")
package org.apache.sling.cms.core.models;
import org.osgi.annotation.versioning.Version;
diff --git a/ui/pom.xml b/ui/pom.xml
index 513307e..662a292 100644
--- a/ui/pom.xml
+++ b/ui/pom.xml
@@ -121,7 +121,7 @@
<pluginExecutionFilter>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
- <versionRange>[1.0.0,)</versionRange>
+ <versionRange>[1.6.0,)</versionRange>
<goals>
<goal>install-node-and-npm</goal>
<goal>npm</goal>
@@ -167,4 +167,30 @@
</build>
</profile>
</profiles>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.models.api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.cms.core</artifactId>
+ <version>0.9.1-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>
+ org.apache.sling.scripting.jsp.taglib
+ </artifactId>
+ <version>2.3.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.bundles</groupId>
+ <artifactId>jstl</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
</project>
\ No newline at end of file
diff --git a/ui/src/main/frontend/src/js/cms.js b/ui/src/main/frontend/src/js/cms.js
index 3b2f306..730e823 100644
--- a/ui/src/main/frontend/src/js/cms.js
+++ b/ui/src/main/frontend/src/js/cms.js
@@ -15,289 +15,317 @@
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
- */
+ */
var Sling = {};
Sling.CMS = {
- ext: {},
- decorate: function($ctx){
- for (var key in Sling.CMS.ext) {
- if(typeof Sling.CMS.ext[key].decorate == 'function'){
- console.log('Invoking decorate for '+key);
- Sling.CMS.ext[key].decorate($ctx);
+ ext : {},
+ decorate : function($ctx) {
+ for ( var key in Sling.CMS.ext) {
+ if (typeof Sling.CMS.ext[key].decorate == 'function') {
+ console.log('Invoking decorate for ' + key);
+ Sling.CMS.ext[key].decorate($ctx);
+ }
+ }
+ },
+ init : function() {
+ for ( var key in Sling.CMS.ext) {
+ if (typeof Sling.CMS.ext[key].init == 'function') {
+ console.log('Invoking init for ' + key);
+ Sling.CMS.ext[key].init();
+ }
+ }
+ Sling.CMS.decorate($(document));
+ },
+ ui : {
+ confirmMessage : function(title, message, complete) {
+ var $modal = $('<div class="modal"><div class="modal-background"></div><div class="modal-card is-draggable"><header class="modal-card-head"><p class="modal-card-title">'
+ + title
+ + '</p></header><section class="modal-card-body">'
+ + message
+ + '</section><footer class="modal-card-foot"><button type="button" class="close-modal button is-primary">OK</button></footer></div>');
+ $('body').append($modal);
+ Sling.CMS.decorate($modal);
+ $modal.addClass('is-active');
+ $modal.find('.delete,.close-modal').click(function() {
+ $modal.css('display', 'none').remove();
+ complete();
+ });
+ return $modal;
+ },
+ fetchModal : function(title, link, path, complete) {
+ var $modal = $('<div class="modal"><div class="modal-background"></div><div class="modal-card is-draggable"><header class="modal-card-head"><p class="modal-card-title">'
+ + title
+ + '</p></header><section class="modal-card-body"></section><footer class="modal-card-foot"><a class="close-modal is-danger button" aria-label="close">Cancel</a></footer></div>');
+ $('body').append($modal);
+ $modal.find('.modal-card-body').load(link, function() {
+ var submitButton = $modal.find('button:submit');
+ var closeButton = $modal.find('.close-modal');
+ submitButton.insertBefore(closeButton);
+ submitButton.on("click", function() {
+ $modal.find('form').submit();
+ })
+ $modal.addClass('is-active');
+ closeButton.click(function() {
+ $modal.css('display', 'none').remove();
+ return false;
+ });
+ Sling.CMS.decorate($modal);
+ complete();
+ });
+ return $modal;
+ }
+ },
+ utils : {
+ form2Obj : function($form) {
+ var data = {};
+ $.map($form.serializeArray(), function(n, i) {
+ data[n['name']] = n['value'];
+ });
+ return data;
+ }
+ }
+};
+
+Sling.CMS.ext['ajaxform'] = {
+ decorate : function($ctx) {
+ $ctx
+ .find('.Form-Ajax')
+ .submit(
+ function() {
+
+ var $form = $(this);
+ var jcrcontent = false;
+ $form.find('input,select,textarea').each(function(idx, inp) {
+ if (inp.name.indexOf('jcr:content') != -1) {
+ jcrcontent = true;
}
- }
- },
- init: function(){
- for (var key in Sling.CMS.ext) {
- if(typeof Sling.CMS.ext[key].init == 'function'){
- console.log('Invoking init for '+key);
- Sling.CMS.ext[key].init();
+ });
+ if ($form.data('addDate')
+ && $form.find('input[name="jcr:content/jcr:lastModified"]').length == 0) {
+ if (jcrcontent) {
+ $form
+ .append('<input type="hidden" name="jcr:content/jcr:lastModified" />');
+ $form
+ .append('<input type="hidden" name="jcr:content/jcr:lastModifiedBy" />');
+ $form
+ .append('<input type="hidden" name="jcr:content/jcr:created" />');
+ $form
+ .append('<input type="hidden" name="jcr:content/jcr:createdBy" />');
+ } else {
+ $form
+ .append('<input type="hidden" name="jcr:lastModified" />');
+ $form
+ .append('<input type="hidden" name="jcr:lastModifiedBy" />');
+ $form.append('<input type="hidden" name="jcr:created" />');
+ $form.append('<input type="hidden" name="jcr:createdBy" />');
}
- }
- Sling.CMS.decorate($(document));
- },
- ui: {
- confirmMessage: function(title, message, complete){
- var $modal = $('<div class="modal"><div class="modal-background"></div><div class="modal-card is-draggable"><header class="modal-card-head"><p class="modal-card-title">'+title+'</p><button class="delete" aria-label="close"></button></header><section class="modal-card-body">'+message+'</section><footer class="modal-card-foot"><button type="button" class="close-modal button is-primary">OK</button></footer></div>');
- $('body').append($modal);
- Sling.CMS.decorate($modal);
- $modal.addClass('is-active');
- $modal.find('.delete,.close-modal').click(function(){
- $modal.css('display','none').remove();
- complete();
- });
- return $modal;
- },
- fetchModal: function(title, link, path, complete){
- var $modal = $('<div class="modal"><div class="modal-background"></div><div class="modal-card is-draggable"><header class="modal-card-head"><p class="modal-card-title">'+title+'</p><button class="delete" aria-label="close"></button></header><section class="modal-card-body"></section><footer class="modal-card-foot"></footer></div>');
- $('body').append($modal);
- $modal.find('.modal-card-body').load(link + " " +path,function(){
- $modal.addClass('is-active');
- $modal.find('.delete,.close-modal').click(function(){
- $modal.css('display','none').remove();
- return false;
- });
- Sling.CMS.decorate($modal);
- complete();
- });
- return $modal;
- }
- },
- utils: {
- form2Obj: function ($form){
- var data = {};
- $.map($form.serializeArray(), function(n, i){
- data[n['name']] = n['value'];
- });
- return data;
- }
- }
- };
-
- Sling.CMS.ext['ajaxform'] = {
- decorate: function($ctx){
- $ctx.find('.Form-Ajax').submit(function(){
-
- var $form = $(this);
- var jcrcontent = false;
- $form.find('input,select,textarea').each(function(idx,inp){
- if(inp.name.indexOf('jcr:content') != -1){
- jcrcontent = true;
- }
- });
- if($form.data('addDate') && $form.find('input[name="jcr:content/jcr:lastModified"]').length == 0){
- if(jcrcontent){
- $form.append('<input type="hidden" name="jcr:content/jcr:lastModified" />');
- $form.append('<input type="hidden" name="jcr:content/jcr:lastModifiedBy" />');
- $form.append('<input type="hidden" name="jcr:content/jcr:created" />');
- $form.append('<input type="hidden" name="jcr:content/jcr:createdBy" />');
- } else {
- $form.append('<input type="hidden" name="jcr:lastModified" />');
- $form.append('<input type="hidden" name="jcr:lastModifiedBy" />');
- $form.append('<input type="hidden" name="jcr:created" />');
- $form.append('<input type="hidden" name="jcr:createdBy" />');
- }
- }
- var callback = $form.data('callback');
- var data = new FormData(this);
- $form.find('.Form-Ajax__wrapper').attr('disabled', 'disabled');
- $.ajax({
- url: $form.attr('action'),
- type: 'POST',
- data: data,
- processData: false,
- contentType: false,
- dataType: 'json',
- success: function(res,msg){
- if (callback && Sling.CMS.ext[callback]){
- Sling.CMS.ext[callback](res, msg);
- } else {
- Sling.CMS.ext.reload(res, msg);
- }
- },
- error: function(xhr, msg, err){
- if(window.self !== window.top){
- window.top.Sling.CMS.ui.confirmMessage(msg, err,function(){
- $form.find('.Form-Ajax__wrapper').removeAttr('disabled');
- });
- } else {
- Sling.CMS.ui.confirmMessage(msg, err,function(){
- $form.find('.Form-Ajax__wrapper').removeAttr('disabled');
- });
- }
- }
- });
- return false;
- });
- }
- };
-
- Sling.CMS.ext['draggable'] = {
- decorate: function($ctx) {
- var draggable = function(){
- var element = this;
- var mouseX;
- var mouseY;
- var mouseDown = false;
- var elementX = 0;
- var elementY = 0;
-
- // mouse button down over the element
- element.addEventListener('mousedown', function(evt){
- if(evt.target.matches('.modal-card-body *')){
- return;
- }
- mouseX = evt.clientX;
- mouseY = evt.clientY;
- mouseDown = true;
- });
-
- var moveComplete = function(){
- mouseDown = false;
- elementX = parseInt(element.style.left) || 0;
- elementY = parseInt(element.style.top) || 0;
- return false;
- }
-
- element.addEventListener('mouseup', moveComplete);
- document.addEventListener('mouseout', moveComplete);
-
- document.addEventListener('mousemove', function(event) {
- if (!mouseDown) {
- return;
- }
- var deltaX = event.clientX - mouseX;
- var deltaY = event.clientY - mouseY;
- element.style.left = elementX + deltaX + 'px';
- element.style.top = elementY + deltaY + 'px';
- return false;
- });
-
- };
- if($ctx.is('.is-draggable')){
- $ctx.each(draggable)
- }
- $ctx.find('.is-draggable').each(draggable);
- }
- };
-
- Sling.CMS.ext['load-versions'] = {
- loaded: false,
- decorate: function($ctx) {
- if(!Sling.CMS.ext['load-versions'].loaded){
- $ctx.find('.load-versions').each(function(){
- var $ctr = $(this);
- var $table = $ctr.closest('.table');
- $.getJSON($ctr.data('url'),function(res){
- $table.dataTable().api().destroy();
- var source = $('#'+$ctr.data('template')).html();
- var template = Handlebars.compile(source);
- $ctr.append(template(res));
- Sling.CMS.ext['load-versions'].loaded = true;
- Sling.CMS.decorate($ctr.closest('.version-container'));
- });
- });
- }
- }
- };
-
- //support links which fetch HTML and display a modal
- Sling.CMS.ext['fetch-modal'] = {
- decorate : function($ctx){
- $ctx.find('a.Fetch-Modal').click(function(){
- var $link = $(this);
- $link.attr('disabled', 'disabled');
- Sling.CMS.ui.fetchModal($link.attr('data-title'), encodeURI($link.attr('href')), $link.attr('data-path'), function(){
- $link.removeAttr('disabled');
- });
- return false;
- });
- }
- };
-
- Sling.CMS.ext['file-upload'] = {
- decorate: function($ctx) {
- $ctx.find('.file').on('change', "input", function(){
- var node = $(this);
- node.parent().find('.file-name').text(this.files[0].name);
- });
- }
- };
-
- Sling.CMS.ext['getform'] = {
- decorate: function($ctx){
- $ctx.find('.Get-Form').submit(function(){
- var $form = $(this);
- var params = $form.serialize();
- $form.find('.Form-Ajax__wrapper').attr('disabled', 'disabled');
-
- $($form.data('target')).load($form.attr('action') + '?' + params +' ' + $form.data('load'), function(){
- $form.find('.Form-Ajax__wrapper').removeAttr('disabled');
- Sling.CMS.decorate($($form.data('target')));
- });
- return false;
- });
- }
- };
-
- Sling.CMS.ext['includeconfig'] = {
- decorate: function($ctx){
- $ctx.find('.sling-cms-include-config').each(function(){
- var $ctr = $(this);
- var load = function(){
- var config = $($ctr.data('source')).find('option:selected').data('config');
-
- if(config){
- $ctr.load(config + $ctr.parents('form').attr('action'), function(){
- Sling.CMS.decorate($ctr.children());
+ }
+ var callback = $form.data('callback');
+ var data = new FormData(this);
+ $form.find('.Form-Ajax__wrapper').attr('disabled', 'disabled');
+ $.ajax({
+ url : $form.attr('action'),
+ type : 'POST',
+ data : data,
+ processData : false,
+ contentType : false,
+ dataType : 'json',
+ success : function(res, msg) {
+ if (callback && Sling.CMS.ext[callback]) {
+ Sling.CMS.ext[callback](res, msg);
+ } else {
+ Sling.CMS.ext.reload(res, msg);
+ }
+ },
+ error : function(xhr, msg, err) {
+ if (window.self !== window.top) {
+ window.top.Sling.CMS.ui.confirmMessage(msg, err,
+ function() {
+ $form.find('.Form-Ajax__wrapper').removeAttr(
+ 'disabled');
});
- }
- };
- $($ctr.data('source')).change(load);
- load();
+ } else {
+ Sling.CMS.ui.confirmMessage(msg, err, function() {
+ $form.find('.Form-Ajax__wrapper').removeAttr('disabled');
+ });
+ }
+ }
+ });
+ return false;
});
+ }
+};
+
+Sling.CMS.ext['draggable'] = {
+ decorate : function($ctx) {
+ var draggable = function() {
+ var element = this;
+ var mouseX;
+ var mouseY;
+ var mouseDown = false;
+ var elementX = 0;
+ var elementY = 0;
+
+ // mouse button down over the element
+ element.addEventListener('mousedown', function(evt) {
+ if (evt.target.matches('.modal-card-body *')) {
+ return;
}
+ mouseX = evt.clientX;
+ mouseY = evt.clientY;
+ mouseDown = true;
+ });
+
+ var moveComplete = function() {
+ mouseDown = false;
+ elementX = parseInt(element.style.left) || 0;
+ elementY = parseInt(element.style.top) || 0;
+ return false;
+ }
+
+ element.addEventListener('mouseup', moveComplete);
+ document.addEventListener('mouseout', moveComplete);
+
+ document.addEventListener('mousemove', function(event) {
+ if (!mouseDown) {
+ return;
+ }
+ var deltaX = event.clientX - mouseX;
+ var deltaY = event.clientY - mouseY;
+ element.style.left = elementX + deltaX + 'px';
+ element.style.top = elementY + deltaY + 'px';
+ return false;
+ });
+
};
-
- Sling.CMS.ext['handledelete'] = function(res, msg){
- if(window.location.pathname.indexOf(res.path) !== -1){
- window.top.Sling.CMS.ui.confirmMessage(msg, res.title,function(){
- window.location = '/cms';
- });
- } else {
- Sling.CMS.ext.reload(res, msg);
- }
+ if ($ctx.is('.is-draggable')) {
+ $ctx.each(draggable)
}
+ $ctx.find('.is-draggable').each(draggable);
+ }
+};
- Sling.CMS.ext['handlemove'] = function(res, msg){
- var changes = res.changes[0];
- if(changes.type === 'moved' && window.location.pathname.indexOf(changes.argument[0]) !== -1){
- window.top.Sling.CMS.ui.confirmMessage(msg, res.title,function(){
- window.location = window.location.href.replace(changes.argument[0], changes.argument[1]);
- });
- } else {
- Sling.CMS.ext.reload(res, msg);
- }
+Sling.CMS.ext['load-versions'] = {
+ loaded : false,
+ decorate : function($ctx) {
+ if (!Sling.CMS.ext['load-versions'].loaded) {
+ $ctx.find('.load-versions').each(function() {
+ var $ctr = $(this);
+ var $table = $ctr.closest('.table');
+ $.getJSON($ctr.data('url'), function(res) {
+ $table.dataTable().api().destroy();
+ var source = $('#' + $ctr.data('template')).html();
+ var template = Handlebars.compile(source);
+ $ctr.append(template(res));
+ Sling.CMS.ext['load-versions'].loaded = true;
+ Sling.CMS.decorate($ctr.closest('.version-container'));
+ });
+ });
}
+ }
+};
- Sling.CMS.ext['handleugc'] = function(res, msg){
- Sling.CMS.ui.confirmMessage(msg, res.title,function(){
- window.location = '/cms/usergenerated/content.html'+res.parentLocation;
- });
- }
+// support links which fetch HTML and display a modal
+Sling.CMS.ext['fetch-modal'] = {
+ decorate : function($ctx) {
+ $ctx.find('a.Fetch-Modal').click(
+ function() {
+ var $link = $(this);
+ $link.attr('disabled', 'disabled');
+ Sling.CMS.ui.fetchModal($link.attr('data-title'), encodeURI($link
+ .attr('href')), $link.attr('data-path'), function() {
+ $link.removeAttr('disabled');
+ });
+ return false;
+ });
+ }
+};
- Sling.CMS.ext['namehint'] = {
- decorate: function($ctx){
- $ctx.find('.namehint').each(function(){
- var $nh = $(this);
- $nh.parents('.Form-Ajax').find('select[name="sling:resourceType"]').change(function(){
- var resourceType = $(this).val().split("\/");
- $nh.val(resourceType[resourceType.length - 1]);
- });
- });
- }
- };
+Sling.CMS.ext['getform'] = {
+ decorate : function($ctx) {
+ $ctx.find('.Get-Form').submit(
+ function() {
+ var $form = $(this);
+ var params = $form.serialize();
+ $form.find('.Form-Ajax__wrapper').attr('disabled', 'disabled');
+
+ $($form.data('target')).load(
+ $form.attr('action') + '?' + params + ' ' + $form.data('load'),
+ function() {
+ $form.find('.Form-Ajax__wrapper').removeAttr('disabled');
+ Sling.CMS.decorate($($form.data('target')));
+ });
+ return false;
+ });
+ }
+};
+
+Sling.CMS.ext['includeconfig'] = {
+ decorate : function($ctx) {
+ $ctx.find('.sling-cms-include-config').each(
+ function() {
+ var $ctr = $(this);
+ var load = function() {
+ var config = $($ctr.data('source')).find('option:selected').data(
+ 'config');
+
+ if (config) {
+ $ctr.load(config + $ctr.parents('form').attr('action'),
+ function() {
+ Sling.CMS.decorate($ctr.children());
+ });
+ }
+ };
+ $($ctr.data('source')).change(load);
+ load();
+ });
+ }
+};
+
+Sling.CMS.ext['handledelete'] = function(res, msg) {
+ if (window.location.pathname.indexOf(res.path) !== -1) {
+ window.top.Sling.CMS.ui.confirmMessage(msg, res.title, function() {
+ window.location = '/cms';
+ });
+ } else {
+ Sling.CMS.ext.reload(res, msg);
+ }
+}
+
+Sling.CMS.ext['handlemove'] = function(res, msg) {
+ var changes = res.changes[0];
+ if (changes.type === 'moved'
+ && window.location.pathname.indexOf(changes.argument[0]) !== -1) {
+ window.top.Sling.CMS.ui.confirmMessage(msg, res.title, function() {
+ window.location = window.location.href.replace(changes.argument[0],
+ changes.argument[1]);
+ });
+ } else {
+ Sling.CMS.ext.reload(res, msg);
+ }
+}
+
+Sling.CMS.ext['handleugc'] = function(res, msg) {
+ Sling.CMS.ui.confirmMessage(msg, res.title, function() {
+ window.location = '/cms/usergenerated/content.html' + res.parentLocation;
+ });
+}
+
+Sling.CMS.ext['namehint'] = {
+ decorate : function($ctx) {
+ $ctx.find('.namehint').each(
+ function() {
+ var $nh = $(this);
+ $nh.parents('.Form-Ajax').find('select[name="sling:resourceType"]')
+ .change(function() {
+ var resourceType = $(this).val().split("\/");
+ $nh.val(resourceType[resourceType.length - 1]);
+ });
+ });
+ }
+};
+
Sling.CMS.ext['navbar'] = {
init: function() {
@@ -310,116 +338,126 @@
});
}
};
-
- Sling.CMS.ext['pageproperties'] = {
- decorate: function($ctx){
- $ctx.find('.Sling-CMS__page-properties').each(function(){
- var $ctr = $(this);
- var $wrapper = $ctr.closest('.Form-Ajax__wrapper');
- $($ctr.data('source')).change(function(){
- var config = $(this).val();
- $ctr.load($ctr.data('path')+config, function(){
- var source = $('#content-template').html();
- var template = Handlebars.compile(source);
- var updateContent = function(){
- if(!$wrapper.is(':disabled')){
- var data = Sling.CMS.utils.form2Obj($ctr.parents('form'));
- $('input[name=":content"]').val(template(data));
- }
- }
- $ctr.find('input,textarea,select').change(updateContent);
- $ctr.parents('form').submit(updateContent);
- Sling.CMS.decorate($ctr.children());
- });
- });
- });
- }
- };
- Sling.CMS.ext['pathfield'] = {
- suggest: function(field, type, base) {
- var xhr;
- new autoComplete({
- minChars: 1,
- selector: field,
- source: function(term, response){
- try {
- xhr.abort();
- } catch(e){}
- if(term === '/'){
- term = base;
- }
- xhr = $.getJSON('/bin/cms/paths', { path: term, type: type }, function(data){
- response(data);
- });
- }
- });
- },
- decorate: function($ctx){
- $ctx.find('input.pathfield').each(function(){
- var type = $(this).data('type');
- var base = $(this).data('base');
- Sling.CMS.ext.pathfield.suggest(this, type, base);
- });
- }
- };
+Sling.CMS.ext['pageproperties'] = {
+ decorate : function($ctx) {
+ $ctx.find('.Sling-CMS__page-properties').each(function() {
+ var $ctr = $(this);
+ var $wrapper = $ctr.closest('.Form-Ajax__wrapper');
+ $($ctr.data('source')).change(function() {
+ var config = $(this).val();
+ $ctr.load($ctr.data('path') + config, function() {
+ var source = $('#content-template').html();
+ var template = Handlebars.compile(source);
+ var updateContent = function() {
+ if (!$wrapper.is(':disabled')) {
+ var data = Sling.CMS.utils.form2Obj($ctr.parents('form'));
+ $('input[name=":content"]').val(template(data));
+ }
+ }
+ $ctr.find('input,textarea,select').change(updateContent);
+ $ctr.parents('form').submit(updateContent);
+ Sling.CMS.decorate($ctr.children());
+ });
+ });
+ });
+ }
+};
- Sling.CMS.ext['reload'] = function(res, msg) {
- if(window.self !== window.top){
- window.top.Sling.CMS.ui.confirmMessage(msg, res.title,function(){
- window.top.location.reload();
- });
- } else {
- Sling.CMS.ui.confirmMessage(msg, res.title,function(){
- location.reload();
- });
+Sling.CMS.ext['pathfield'] = {
+ suggest : function(field, type, base) {
+ var xhr;
+ new autoComplete({
+ minChars : 1,
+ selector : field,
+ source : function(term, response) {
+ try {
+ xhr.abort();
+ } catch (e) {
}
- }
-
- Sling.CMS.ext['repeating'] = {
- decorate: function($ctx){
- $ctx.find('.repeating').each(function(){
- var $rep = $(this);
- $rep.find('.repeating__add').click(function(){
- var $div = $('<div/>').html($rep.find('.repeating__template').html());
- Sling.CMS.decorate($div);
- $rep.find('.repeating__container').append($div);
- return false;
- });
- });
- $ctx.find('.repeating__remove').click(function(){
- var $rem = $(this);
- $rem.parents('.repeating__item').remove();
- return false;
- });
+ if (term === '/') {
+ term = base;
}
- };
-
- Sling.CMS.ext['richtext'] = {
- decorate: function($ctx){
- $ctx.find('.richtext').summernote({
- toolbar: [
- ['style', ['bold', 'italic', 'clear','strikethrough', 'superscript', 'subscript']],
- ['insert', ['picture', 'link', 'table', 'hr']],
- ['para', ['style','ul', 'ol', 'paragraph']],
- ['misc', ['codeview', 'undo','redo','help']]
- ],
- followingToolbar: false,
- dialogsInBody: true,
- height: 200,
- onCreateLink: function (url) {
- return url;
- },
- callbacks: {
- onDialogShown: function(){
- Sling.CMS.ext.pathfield.suggest($('.note-link-url')[0], 'content', '/content');
- Sling.CMS.ext.pathfield.suggest($('.note-image-url')[0], 'content', '/content');
- }
- }
- });
- }
- };
-
+ xhr = $.getJSON('/bin/cms/paths', {
+ path : term,
+ type : type
+ }, function(data) {
+ response(data);
+ });
+ }
+ });
+ },
+ decorate : function($ctx) {
+ $ctx.find('input.pathfield').each(function() {
+ var type = $(this).data('type');
+ var base = $(this).data('base');
+ Sling.CMS.ext.pathfield.suggest(this, type, base);
+ });
+ }
+};
+
+Sling.CMS.ext['reload'] = function(res, msg) {
+ if (window.self !== window.top) {
+ window.top.Sling.CMS.ui.confirmMessage(msg, res.title, function() {
+ window.top.location.reload();
+ });
+ } else {
+ Sling.CMS.ui.confirmMessage(msg, res.title, function() {
+ location.reload();
+ });
+ }
+}
+
+Sling.CMS.ext['repeating'] = {
+ decorate : function($ctx) {
+ $ctx.find('.repeating').each(function() {
+ var $rep = $(this);
+ $rep.find('.repeating__add').click(function() {
+ var $div = $('<div/>').html($rep.find('.repeating__template').html());
+ Sling.CMS.decorate($div);
+ $rep.find('.repeating__container').append($div);
+ return false;
+ });
+ });
+ $ctx.find('.repeating__remove').click(function() {
+ var $rem = $(this);
+ $rem.parents('.repeating__item').remove();
+ return false;
+ });
+ }
+};
+
+Sling.CMS.ext['richtext'] = {
+ decorate : function($ctx) {
+ $ctx.find('.richtext').summernote(
+ {
+ toolbar : [
+ [
+ 'style',
+ [ 'bold', 'italic', 'clear', 'strikethrough', 'superscript',
+ 'subscript' ] ],
+ [ 'insert', [ 'picture', 'link', 'table', 'hr' ] ],
+ [ 'para', [ 'style', 'ul', 'ol', 'paragraph' ] ],
+ [ 'misc', [ 'codeview', 'undo', 'redo', 'help' ] ] ],
+ followingToolbar : false,
+ dialogsInBody : true,
+ height : 200,
+ onCreateLink : function(url) {
+ return url;
+ },
+ callbacks : {
+ onDialogShown : function() {
+ Sling.CMS.ext.pathfield.suggest($('.note-link-url')[0],
+ 'content', '/content');
+ Sling.CMS.ext.pathfield.suggest($('.note-image-url')[0],
+ 'content', '/content');
+ }
+ }
+ });
+ }
+};
+
+
Sling.CMS.ext['searchselect'] = {
decorate: function($ctx) {
$ctx.find('.search-select-button').click(function(evt){
@@ -429,7 +467,7 @@
$btn.closest('.modal').remove();
});
}
- };
+ }
Sling.CMS.ext['searchbutton'] = {
active: null,
@@ -438,97 +476,109 @@
Sling.CMS.ext['searchbutton'].active = $(evt.target).closest('.field').find('.pathfield');
});
}
- };
+}
- Sling.CMS.ext['suffix-form'] = {
- init: function() {
- $('.suffix-form').submit(function(){
- var suffix = $(this).find('input[name=suffix]').val();
- var path = $(this).attr('action');
- window.location = path + suffix;
- return false;
- });
- }
- }
-
- Sling.CMS.ext['table'] = {
- decorate: function($ctx) {
- $ctx.find('table tbody tr').click(function(el){
- $('.actions-target > *').appendTo('tr.is-selected .cell-actions')
- $('tr').removeClass('is-selected');
- $(this).addClass('is-selected');
- $(this).find('.cell-actions > *').appendTo('.actions-target')
- });
-
- $ctx.find('table').each(function(){
- var sort = $(this).data('sort') !== 'false';
- var paginate = $(this).data('paginate') !== 'false';
- $(this).DataTable({
- sort: sort,
- paginate: paginate
- });
- });
- }
- };
-
- Sling.CMS.ext['taxonomy'] = {
- decorate: function($ctx){
- $ctx.find('.taxonomy').each(function(){
- var $rep = $(this);
- $rep.find('.taxonomy__add').click(function(){
- var $span = $('<span/>').html($rep.find('.taxonomy__template').html());
- var val = $ctx.find('.taxonomy__field input').val();
- var found = false;
- $rep.find('.taxonomy__item input').each(function(idx, el){
- if($(el).val() === val){
- found = true;
- }
- });
- if(found){
- return false;
- }
- $span.find('input').val(val);
- var title = $ctx.find('option[value="'+val+'"]').text();
-
- if(title !== ''){
- $span.find('.taxonomy__title').text(title);
- Sling.CMS.decorate($span);
- $('.taxonomy__container').append($span);
- $ctx.find('.taxonomy__field input').val('');
- }
- return false;
- });
- });
- $ctx.find('.taxonomy__item').click(function(){
- $(this).remove();
- return false;
- });
- }
- };
-
- Sling.CMS.ext['toggle-hidden'] = {
- decorate: function($ctx){
- $ctx.find('.toggle-hidden').click(function(){
- $($(this).data('target')).toggleClass('is-hidden');
- });
- }
- };
-
- Sling.CMS.ext['toggle-value'] = {
- decorate: function($ctx) {
- $ctx.find('.toggle-value').each(function(){
- var $tog = $(this);
- $('input[name="'+$tog.data('toggle-source')+'"], select[name="'+$tog.data('toggle-source')+'"]').change(function(){
- if($(this).val() !== $tog.data('toggle-value')){
- $tog.addClass('is-hidden');
- } else {
- $tog.removeClass('is-hidden');
- }
- });
- })
- }
- };
-
- $(document).ready(function() {
- Sling.CMS.init();
+Sling.CMS.ext['suffix-form'] = {
+ init : function() {
+ $('.suffix-form').submit(function() {
+ var suffix = $(this).find('input[name=suffix]').val();
+ var path = $(this).attr('action');
+ window.location = path + suffix;
+ return false;
});
+ }
+}
+
+Sling.CMS.ext['table'] = {
+ decorate : function($ctx) {
+ $ctx.find('table tbody tr').click(function(el) {
+ $('.actions-target > *').appendTo('tr.is-selected .cell-actions')
+ $('tr').removeClass('is-selected');
+ $(this).addClass('is-selected');
+ $(this).find('.cell-actions > *').appendTo('.actions-target')
+ });
+
+ $ctx.find('table').each(function() {
+ var sort = $(this).data('sort') !== 'false';
+ var paginate = $(this).data('paginate') !== 'false';
+ $(this).DataTable({
+ sort : sort,
+ paginate : paginate
+ });
+ });
+ }
+};
+
+Sling.CMS.ext['taxonomy'] = {
+ decorate : function($ctx) {
+ $ctx.find('.taxonomy').each(function() {
+ var $rep = $(this);
+ $rep.find('.taxonomy__add').click(function() {
+ var $span = $('<span/>').html($rep.find('.taxonomy__template').html());
+ var val = $ctx.find('.taxonomy__field input').val();
+ var found = false;
+ $rep.find('.taxonomy__item input').each(function(idx, el) {
+ if ($(el).val() === val) {
+ found = true;
+ }
+ });
+ if (found) {
+ return false;
+ }
+ $span.find('input').val(val);
+ var title = $ctx.find('option[value="' + val + '"]').text();
+
+ if (title !== '') {
+ $span.find('.taxonomy__title').text(title);
+ Sling.CMS.decorate($span);
+ $('.taxonomy__container').append($span);
+ $ctx.find('.taxonomy__field input').val('');
+ }
+ return false;
+ });
+ });
+ $ctx.find('.taxonomy__item').click(function() {
+ $(this).remove();
+ return false;
+ });
+ }
+};
+
+Sling.CMS.ext['toggle-hidden'] = {
+ decorate : function($ctx) {
+ $ctx.find('.toggle-hidden').click(function() {
+ $($(this).data('target')).toggleClass('is-hidden');
+ });
+ }
+};
+
+Sling.CMS.ext['toggle-value'] = {
+ decorate : function($ctx) {
+ $ctx.find('.toggle-value').each(
+ function() {
+ var $tog = $(this);
+ $(
+ 'input[name="' + $tog.data('toggle-source') + '"], select[name="'
+ + $tog.data('toggle-source') + '"]').change(function() {
+ if ($(this).val() !== $tog.data('toggle-value')) {
+ $tog.addClass('is-hidden');
+ } else {
+ $tog.removeClass('is-hidden');
+ }
+ });
+ })
+ }
+};
+
+Sling.CMS.ext['file-upload'] = {
+ decorate : function($ctx) {
+ $ctx.find('.file').on('change', "input", function() {
+ var node = $(this);
+ node.parent().find('.file-name').text(this.files[0].name);
+ });
+ }
+};
+
+$(document).ready(function() {
+ Sling.CMS.init();
+});
diff --git a/ui/src/main/frontend/src/scss/_overrides.scss b/ui/src/main/frontend/src/scss/_overrides.scss
index 3d718fa..2bdf527 100644
--- a/ui/src/main/frontend/src/scss/_overrides.scss
+++ b/ui/src/main/frontend/src/scss/_overrides.scss
@@ -38,4 +38,5 @@
$danger: $crimson;
$navbar-height: 5rem;
$navbar-item-img-max-height: 4rem;
+$section-padding : 1rem 1.5rem;
$modal-z: 2000;
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/conf/cms.json b/ui/src/main/resources/jcr_root/conf/cms.json
new file mode 100644
index 0000000..e02aef2
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/conf/cms.json
@@ -0,0 +1,2 @@
+{
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/conf/global.json b/ui/src/main/resources/jcr_root/conf/global.json
index c2ea9ad..1110ed2 100644
--- a/ui/src/main/resources/jcr_root/conf/global.json
+++ b/ui/src/main/resources/jcr_root/conf/global.json
@@ -1,139 +1,139 @@
{
- "jcr:primaryType": "sling:OrderedFolder",
- "jcr:content": {
- "jcr:primaryType": "nt:unstructured",
- "jcr:title": "Global"
- },
- "files": {
- "jcr:primaryType": "sling:OrderedFolder",
- "jcr:content": {
- "jcr:primaryType": "nt:unstructured",
- "jcr:title": "File Configurations"
- },
- "editors": {
- "jcr:primaryType": "sling:OrderedFolder",
- "jcr:content": {
- "jcr:primaryType": "nt:unstructured",
- "jcr:title": "File Editor"
- },
- "default": {
- "jcr:primaryType": "sling:Config",
- "jcr:title": "Default File Editor",
- "sling:resourceType": "sling-cms/components/cms/fileeditorconfig",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "required": false,
- "name": "jcr:content/jcr:title",
- "type": "text",
- "label": "Title",
- "sling:resourceType": "sling-cms/components/editor/fields/text"
- },
- "jcrmimeType": {
- "jcr:primaryType": "nt:unstructured",
- "required": true,
- "name": "jcr:content/jcr:mimeType",
- "type": "text",
- "label": "MIME Type",
- "sling:resourceType": "sling-cms/components/editor/fields/text"
- },
- "licensing": {
- "jcr:primaryType": "nt:unstructured",
- "required": false,
- "name": "jcr:content/licensing",
- "type": "text",
- "label": "Licensing",
- "sling:resourceType": "sling-cms/components/editor/fields/text"
- },
- "taxonomy": {
- "jcr:primaryType": "nt:unstructured",
- "name": "jcr:content/sling:taxonomy",
- "label": "Taxonomy",
- "sling:resourceType": "sling-cms/components/editor/fields/taxonomy"
- },
- "taxonomyTypeHint": {
- "jcr:primaryType": "nt:unstructured",
- "name": "jcr:content/sling:taxonomy@TypeHint",
- "value": "String[]",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden"
- },
- "published": {
- "jcr:primaryType": "nt:unstructured",
- "options": "Yes=true, No=false",
- "name": "jcr:content/published",
- "label": "Published",
- "sling:resourceType": "sling-cms/components/editor/fields/select"
- },
- "publishedTypeHint": {
- "jcr:primaryType": "nt:unstructured",
- "name": "jcr:content/published@TypeHint",
- "value": "Boolean",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden"
- }
- }
- }
- }
- },
- "site": {
- "jcr:primaryType": "sling:Config",
- "sling:resourceType": "sling-cms/components/cms/siteconfig",
- "jcr:title": "Default Site Configuration",
- "rewrite": {
- "jcr:primaryType": "nt:unstructured",
- "doctype": "<!DOCTYPE html>",
- "attributes": [
- "action",
- "href",
- "src"
- ]
- },
- "templates": {
- "jcr:primaryType": "nt:unstructured",
- "base-page": {
- "jcr:primaryType": "nt:unstructured",
- "jcr:title": "Base Page",
- "template": "{\r\n \"jcr:primaryType\": \"sling:Page\",\r\n \"jcr:content\": {\r\n \"jcr:primaryType\": \"nt:unstructured\",\r\n \"jcr:title\": \"{{title}}\",\r\n \"sling:template\": \"/conf/global/site/templates/base-page\",\r\n \"sling:resourceType\": \"reference/components/pages/base\",\r\n \"published\": false\r\n }\r\n}",
- "availableComponentTypes": [
- "General"
- ],
- "allowedPaths": [
- "/content/apache/sling-apache-org.*"
- ],
- "sling:resourceType": "sling-cms/components/cms/pagetemplate",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "text": {
- "jcr:primaryType": "nt:unstructured",
- "required": true,
- "name": "title",
- "type": "text",
- "label": "Title",
- "sling:resourceType": "sling-cms/components/editor/fields/text"
- },
- "text_1147023191": {
- "jcr:primaryType": "nt:unstructured",
- "required": true,
- "name": ":name",
- "type": "text",
- "label": "Name",
- "sling:resourceType": "sling-cms/components/editor/fields/text"
- }
- },
- "componentConfigurations": {
- "jcr:primaryType": "nt:unstructured",
- "componentconfig": {
- "jcr:primaryType": "nt:unstructured",
- "type": "reference/components/general/columncontrol",
- "containerclass": "container",
- "columns": [
- "50-50=col-md-6 col-md-6",
- "100=col-md-12"
- ],
- "sling:resourceType": "sling-cms/components/cms/componentconfig"
- }
- }
- }
- }
- }
+ "jcr:primaryType": "sling:OrderedFolder",
+ "jcr:content": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "Global"
+ },
+ "files": {
+ "jcr:primaryType": "sling:OrderedFolder",
+ "jcr:content": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "File Configurations"
+ },
+ "editors": {
+ "jcr:primaryType": "sling:OrderedFolder",
+ "jcr:content": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "File Editor"
+ },
+ "default": {
+ "jcr:primaryType": "sling:Config",
+ "jcr:title": "Default File Editor",
+ "sling:resourceType": "sling-cms/components/cms/fileeditorconfig",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "required": false,
+ "name": "jcr:content/jcr:title",
+ "type": "text",
+ "label": "Title",
+ "sling:resourceType": "sling-cms/components/editor/fields/text"
+ },
+ "jcrmimeType": {
+ "jcr:primaryType": "nt:unstructured",
+ "required": true,
+ "name": "jcr:content/jcr:mimeType",
+ "type": "text",
+ "label": "MIME Type",
+ "sling:resourceType": "sling-cms/components/editor/fields/text"
+ },
+ "licensing": {
+ "jcr:primaryType": "nt:unstructured",
+ "required": false,
+ "name": "jcr:content/licensing",
+ "type": "text",
+ "label": "Licensing",
+ "sling:resourceType": "sling-cms/components/editor/fields/text"
+ },
+ "taxonomy": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": "jcr:content/sling:taxonomy",
+ "label": "Taxonomy",
+ "sling:resourceType": "sling-cms/components/editor/fields/taxonomy"
+ },
+ "taxonomyTypeHint": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": "jcr:content/sling:taxonomy@TypeHint",
+ "value": "String[]",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden"
+ },
+ "published": {
+ "jcr:primaryType": "nt:unstructured",
+ "options": "Yes=true, No=false",
+ "name": "jcr:content/published",
+ "label": "Published",
+ "sling:resourceType": "sling-cms/components/editor/fields/select"
+ },
+ "publishedTypeHint": {
+ "jcr:primaryType": "nt:unstructured",
+ "name": "jcr:content/published@TypeHint",
+ "value": "Boolean",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden"
+ }
+ }
+ }
+ }
+ },
+ "site": {
+ "jcr:primaryType": "sling:Config",
+ "sling:resourceType": "sling-cms/components/cms/siteconfig",
+ "jcr:title": "Default Site Configuration",
+ "rewrite": {
+ "jcr:primaryType": "nt:unstructured",
+ "doctype": "<!DOCTYPE html>",
+ "attributes": [
+ "action",
+ "href",
+ "src"
+ ]
+ },
+ "templates": {
+ "jcr:primaryType": "nt:unstructured",
+ "base-page": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "Base Page",
+ "template": "{\r\n \"jcr:primaryType\": \"sling:Page\",\r\n \"jcr:content\": {\r\n \"jcr:primaryType\": \"nt:unstructured\",\r\n \"jcr:title\": \"{{title}}\",\r\n \"sling:template\": \"/conf/global/site/templates/base-page\",\r\n \"sling:resourceType\": \"reference/components/pages/base\",\r\n \"published\": false\r\n }\r\n}",
+ "availableComponentTypes": [
+ "General"
+ ],
+ "allowedPaths": [
+ "/content/apache/sling-apache-org.*"
+ ],
+ "sling:resourceType": "sling-cms/components/cms/pagetemplate",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "text": {
+ "jcr:primaryType": "nt:unstructured",
+ "required": true,
+ "name": "title",
+ "type": "text",
+ "label": "Title",
+ "sling:resourceType": "sling-cms/components/editor/fields/text"
+ },
+ "text_1147023191": {
+ "jcr:primaryType": "nt:unstructured",
+ "required": true,
+ "name": ":name",
+ "type": "text",
+ "label": "Name",
+ "sling:resourceType": "sling-cms/components/editor/fields/text"
+ }
+ },
+ "componentConfigurations": {
+ "jcr:primaryType": "nt:unstructured",
+ "componentconfig": {
+ "jcr:primaryType": "nt:unstructured",
+ "type": "reference/components/general/columncontrol",
+ "containerclass": "container",
+ "columns": [
+ "50-50=col-md-6 col-md-6",
+ "100=col-md-12"
+ ],
+ "sling:resourceType": "sling-cms/components/cms/componentconfig"
+ }
+ }
+ }
+ }
+ }
}
diff --git a/ui/src/main/resources/jcr_root/content.json b/ui/src/main/resources/jcr_root/content.json
deleted file mode 100644
index e064ab5..0000000
--- a/ui/src/main/resources/jcr_root/content.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "jcr:primaryType": "sling:Folder"
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/401.json b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/401.json
index ce41d15..7ed027a 100644
--- a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/401.json
+++ b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/401.json
@@ -1,18 +1,18 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/error",
- "jcr:title": "Unauthorized",
- "jcr:primaryType": "nt:unstructured",
- "center": true,
- "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>Unauthorized</h3><p>You cannot access the requested resource.</p><p><a href=\"/system/sling/form/login\">Login?</a>"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/error",
+ "jcr:title": "Unauthorized",
+ "jcr:primaryType": "nt:unstructured",
+ "center": true,
+ "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>Unauthorized</h3><p>You cannot access the requested resource.</p><p><a href=\"/system/sling/form/login\">Login?</a>"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/403.json b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/403.json
index e7685a3..c29719c 100644
--- a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/403.json
+++ b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/403.json
@@ -1,18 +1,18 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/error",
- "jcr:title": "Forbidden",
- "jcr:primaryType": "nt:unstructured",
- "center": true,
- "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>Forbidden</h3><p>You cannot access the requested resource.</p><p><a href=\"/system/sling/form/login\">Login?</a>"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/error",
+ "jcr:title": "Forbidden",
+ "jcr:primaryType": "nt:unstructured",
+ "center": true,
+ "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>Forbidden</h3><p>You cannot access the requested resource.</p><p><a href=\"/system/sling/form/login\">Login?</a>"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/404.json b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/404.json
index 5faf31a..7a2acaf 100644
--- a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/404.json
+++ b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/404.json
@@ -1,18 +1,18 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/error",
- "jcr:title": "Not Found",
- "jcr:primaryType": "nt:unstructured",
- "center": true,
- "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>Not Found</h3><p>The requested content was not found.</p>"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/error",
+ "jcr:title": "Not Found",
+ "jcr:primaryType": "nt:unstructured",
+ "center": true,
+ "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>Not Found</h3><p>The requested content was not found.</p>"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/default.json b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/default.json
index da21f25..7d25e3c 100644
--- a/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/default.json
+++ b/ui/src/main/resources/jcr_root/content/sling-cms/errorhandling/default.json
@@ -1,18 +1,18 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/error",
- "jcr:title": "Exception",
- "jcr:primaryType": "nt:unstructured",
- "center": true,
- "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>Unexpected Exception</h3><p>An unexpected exception occurred rendering the response.</p>"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/error",
+ "jcr:title": "Exception",
+ "jcr:primaryType": "nt:unstructured",
+ "center": true,
+ "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>Unexpected Exception</h3><p>An unexpected exception occurred rendering the response.</p>"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/etc/taxonomy/jcr%3Acontent.json b/ui/src/main/resources/jcr_root/etc/taxonomy/jcr%3Acontent.json
index 26d6e7e..b74a78b 100644
--- a/ui/src/main/resources/jcr_root/etc/taxonomy/jcr%3Acontent.json
+++ b/ui/src/main/resources/jcr_root/etc/taxonomy/jcr%3Acontent.json
@@ -1,4 +1,5 @@
{
"jcr:primaryType": "nt:unstructured",
+ "tabledepth": 2,
"jcr:title": "Taxonomy"
}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/nt%3Afile.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/nt%3Afile.json
new file mode 100644
index 0000000..4f42e3f
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/nt%3Afile.json
@@ -0,0 +1,51 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit File",
+ "icon": "pencil-f",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/edit/file.html"
+ },
+ "optimize": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Optimize File",
+ "icon": "archive",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/optimize/file.html"
+ },
+ "download": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Download file",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "icon": "download"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy File",
+ "icon": "move-alt",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "version": {
+ "jcr:primaryType": "nt:unstructured",
+ "ajaxPath": ".versionmanager",
+ "modal": true,
+ "title": "Manage Versions",
+ "icon": "history",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/versions.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete File",
+ "icon": "trash",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AConfig.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AConfig.json
new file mode 100644
index 0000000..14badd1
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AConfig.json
@@ -0,0 +1,24 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Site Config",
+ "icon": "pencil-f",
+ "prefix": "/cms/config/metadata.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Config",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Site Config",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFile.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFile.json
new file mode 100644
index 0000000..4f42e3f
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFile.json
@@ -0,0 +1,51 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit File",
+ "icon": "pencil-f",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/edit/file.html"
+ },
+ "optimize": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Optimize File",
+ "icon": "archive",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/optimize/file.html"
+ },
+ "download": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Download file",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "icon": "download"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy File",
+ "icon": "move-alt",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "version": {
+ "jcr:primaryType": "nt:unstructured",
+ "ajaxPath": ".versionmanager",
+ "modal": true,
+ "title": "Manage Versions",
+ "icon": "history",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/versions.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete File",
+ "icon": "trash",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFolder.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFolder.json
new file mode 100644
index 0000000..9067adc
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFolder.json
@@ -0,0 +1,27 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Folder",
+ "icon": "pencil-f",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/edit/folder.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Folder",
+ "icon": "move-alt",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Folder",
+ "icon": "trash",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AMapping.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AMapping.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AMapping.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AOrderedFolder.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AOrderedFolder.json
new file mode 100644
index 0000000..b6f64a9
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AOrderedFolder.json
@@ -0,0 +1,27 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Site Group",
+ "icon": "pencil-f",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/edit/sitegroup.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Site Group",
+ "icon": "move-alt",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Delete Site Group",
+ "icon": "trash",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
+ "prefix": "/cms/actions/shared/delete.html",
+ "modal": true
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3APage.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3APage.json
new file mode 100644
index 0000000..140ed09
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3APage.json
@@ -0,0 +1,39 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Edit Page",
+ "icon": "pencil-f",
+ "prefix": "/cms/page/edit.html"
+ },
+ "properties": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Page Properties",
+ "icon": "cog",
+ "prefix": "/cms/page/siteeditproperties.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Page",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "version": {
+ "jcr:primaryType": "nt:unstructured",
+ "ajaxPath": ".versionmanager",
+ "modal": true,
+ "title": "Manage Versions",
+ "icon": "history",
+ "prefix": "/cms/actions/shared/versions.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Page",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ASite.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ASite.json
new file mode 100644
index 0000000..154e16a
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ASite.json
@@ -0,0 +1,24 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Site",
+ "icon": "pencil-f",
+ "prefix": "/cms/actions/edit/site.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Site",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete the specified site",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ATaxonomy.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ATaxonomy.json
new file mode 100644
index 0000000..af5eec7
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ATaxonomy.json
@@ -0,0 +1,24 @@
+{
+ "jcr:primaryType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "jcr:title": "Edit Taxonomy Item",
+ "icon": "pencil-f",
+ "prefix": "/cms/actions/edit/taxonomy.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "jcr:title": "Move / Copy Taxonomy Item",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "jcr:title": "Delete Taxonomy Item",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/breadcrumbmenu.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/breadcrumbmenu.jsp
new file mode 100644
index 0000000..5fa4515
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/breadcrumbmenu.jsp
@@ -0,0 +1,30 @@
+<%-- /*
+ * 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.
+ */ --%>
+<%@page import="org.apache.sling.cms.core.models.components.Breadcrumbs"%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<sling:adaptTo adaptable="${slingRequest}" adaptTo="org.apache.sling.cms.core.models.components.Breadcrumbs" var="model"/>
+<ul>
+ <c:forEach var="item" items="${model.pathData}">
+ <li>
+ <a href="${item.href}" ${item.aria} ${item.classAttr} >
+ <sling:encode value="${item.title}" mode="HTML" />
+ </a>
+ </li>
+ </c:forEach>
+</ul>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/edit.json
new file mode 100644
index 0000000..e5f0709
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/edit.json
@@ -0,0 +1,31 @@
+ {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "title": "Suffix BreadCrumb",
+ "button": "Save Suffix Breadcrumb",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "level": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Depth",
+ "name": "depth",
+ "required": true,
+ "type": "number"
+ },
+ "levelTypeHint": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "level@TypeHint",
+ "value": "Long"
+ },
+ "prefix": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Prefix",
+ "name": "prefix",
+ "required": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp
index b1e51fb..8499f32 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp
@@ -17,21 +17,12 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<td class="is-hidden cell-actions">
- <c:forEach var="actionConfig" items="${sling:listChildren(colConfig)}">
- <c:choose>
- <c:when test="${actionConfig.valueMap.modal}">
- <a class="button Fetch-Modal" data-title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}" data-path="${actionConfig.valueMap.ajaxPath != null ? actionConfig.valueMap.ajaxPath : '.Main-Content form'}" href="${actionConfig.valueMap.prefix}${resource.path}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
- <span class="jam jam-${actionConfig.valueMap.icon}">
- </span>
- </a>
- </c:when>
- <c:otherwise>
- <a class="button" ${actionConfig.valueMap.new != false ? 'target="_blank"' : ''} href="${actionConfig.valueMap.prefix}${resource.path}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
- <span class="jam jam-${actionConfig.valueMap.icon}">
- </span>
- </a>
- </c:otherwise>
- </c:choose>
- </c:forEach>
+<td class="is-hidden cell-actions"><sling:adaptTo
+ adaptable="${slingRequest}"
+ adaptTo="org.apache.sling.cms.core.models.components.Actions"
+ var="model"
+ /> <c:set var="colResource" value="${resource}" scope="request" />
+ <c:forEach var="child" items="${model.children}">
+ <sling:include resource="${child}" resourceType="sling-cms/components/cms/resource/action" />
+ </c:forEach>
</td>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/lastmodified/lastmodified.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/lastmodified/lastmodified.jsp
index 2811532..71d647e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/lastmodified/lastmodified.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/lastmodified/lastmodified.jsp
@@ -17,11 +17,9 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<c:set var="modifiedProperty" value="${colConfig.valueMap.subPath}jcr:lastModified" />
-<c:set var="modifiedByProperty" value="${colConfig.valueMap.subPath}jcr:lastModifiedBy" />
-<fmt:formatDate var="lastModified" type = "both" dateStyle = "medium" timeStyle = "medium" value="${resource.valueMap[modifiedProperty].time}" />
+<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.cms.core.models.components.column.LastModified" var="model" />
+
<c:set var="colValue" value="${lastModified} - ${resource.valueMap[modifiedByProperty]}" />
-<td title="${sling:encode(colValue,'HTML_ATTR')}">
- <sling:encode value="${lastModified}" mode="HTML" /><br/>
- <sling:encode value="${resource.valueMap[modifiedByProperty]}" mode="HTML" />
+<td title="${model.title}">
+ ${model.lastModified}<br/>${model.lastModifiedBy}
</td>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/name/name.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/name/name.jsp
index 67dfbd9..41e5ae3 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/name/name.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/name/name.jsp
@@ -17,16 +17,18 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<td>
- <c:set var="colValue" value="${resource.name}" />
- <c:choose>
- <c:when test="${colConfig.valueMap.link}">
- <a href="${colConfig.valueMap.prefix}${resource.path}">
- <sling:encode value="${colValue}" mode="HTML" />
- </a>
- </c:when>
- <c:otherwise>
- <sling:encode value="${colValue}" mode="HTML" />
- </c:otherwise>
- </c:choose>
-</td>
\ No newline at end of file
+<sling:adaptTo adaptable="${resource}"
+ adaptTo="org.apache.sling.cms.core.models.components.column.Name"
+ var="model" />
+<td><c:set var="colValue" value="${resource.name}" /> <c:choose>
+ <c:when test="${colConfig.valueMap.link}">
+ <a class="has-text-primary"
+ href="${colConfig.valueMap.prefix}${resource.path}">
+ <span class="icon"><i class="jam jam-${model.icon}"></i></span>
+ <sling:encode value="${colValue}" mode="HTML" />
+ </a>
+ </c:when>
+ <c:otherwise>
+ <sling:encode value="${colValue}" mode="HTML" />
+ </c:otherwise>
+ </c:choose></td>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/publish/publish.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/publish/publish.jsp
index af15eb3..e00bb7e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/publish/publish.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/publish/publish.jsp
@@ -17,16 +17,16 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<td data-value="${sling:getRelativeResource(resource,'jcr:content').valueMap.published ? 0 : 1}">
+<td class="has-text-centered" data-value="${sling:getRelativeResource(resource,'jcr:content').valueMap.published ? 0 : 1}">
<c:choose>
<c:when test="${sling:getRelativeResource(resource,'jcr:content').valueMap.published}">
- <a class="button is-success is-outlined Fetch-Modal" href="/cms/shared/unpublish.html${resource.path}" title="Content Published" data-title="Unpublish" data-path=".Main-Content form">
- <i class="jam jam-check"></i>
+ <a class="button is-success is-centered Fetch-Modal" href="/cms/actions/shared/unpublish.html${resource.path}" title="Click to Unpublish" data-title="Unpublish" data-path=".Main-Content form">
+ <i class="jam jam-download"></i>
</a>
</c:when>
<c:otherwise>
- <a class="button is-warning is-outlined Fetch-Modal" href="/cms/shared/publish.html${resource.path}" title="Content Not Published" data-title="Publish" data-path=".Main-Content form">
- <i class="jam jam-close"></i>
+ <a class="button is-danger Fetch-Modal" href="/cms/actions/shared/publish.html${resource.path}" title="Click to Publish" data-title="Publish" data-path=".Main-Content form">
+ <i class="jam jam-upload"></i>
</a>
</c:otherwise>
</c:choose>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
index 5880c78..2644a3e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
@@ -18,17 +18,23 @@
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
<nav class="level">
- <div class="level-left">
- <div class="level-item">
- <div class="buttons has-addons">
- <c:forEach var="action" items="${sling:listChildren(sling:getRelativeResource(resource,'actions'))}" varStatus="status">
- <a class="button Fetch-Modal" data-title="Add ${action.valueMap.label}" data-path=".Main-Content form" href="${action.valueMap.prefix}${slingRequest.requestPathInfo.suffix}">+ ${action.valueMap.label}</a>
- </c:forEach>
- </div>
- </div>
- <div class="level-item">
- <div class="buttons has-addons actions-target">
- </div>
- </div>
- </div>
+ <div class="level-left">
+ <div class="level-item">
+ <div class="buttons has-addons">
+ <c:forEach var="action"
+ items="${sling:listChildren(sling:getRelativeResource(resource,'actions'))}"
+ varStatus="status"
+ >
+ <a class="button Fetch-Modal"
+ data-title="Add ${action.valueMap.label}"
+ data-path=".Main-Content form"
+ href="${action.valueMap.prefix}${slingRequest.requestPathInfo.suffix}"
+ >+ ${action.valueMap.label}</a>
+ </c:forEach>
+ </div>
+ </div>
+ <div class="level-item">
+ <div class="buttons has-addons actions-target"></div>
+ </div>
+ </div>
</nav>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
index 18212b7..5eb7eaf 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
@@ -16,30 +16,18 @@
* specific language governing permissions and limitations
* under the License.
*/ --%>
- <%@include file="/libs/sling-cms/global.jsp"%>
-<sling:getParent resource="${slingRequest.requestPathInfo.suffixResource}" var="root" level="${resource.valueMap.depth}" />
-<nav class="breadcrumb" aria-label="breadcrumbs">
+<%@page import="org.apache.sling.models.factory.ModelFactory"%>
+<%@page import="org.apache.sling.cms.core.models.components.Breadcrumbs"%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<sling:adaptTo adaptable="${slingRequest}" adaptTo="org.apache.sling.cms.core.models.components.Breadcrumbs" var="model"/>
+<nav class="breadcrumb" aria-label="Breadcrumb">
<ul>
- <li>
- <a href="${resource.valueMap.prefix}${root.path}">
- <sling:encode value="${root.valueMap['jcr:title'] != null ? root.valueMap['jcr:title'] : root.valueMap['jcr:content/jcr:title']}" default="${root.name}" mode="HTML" />
- </a>
- </li>
- <c:if test="${site.path != slingRequest.requestPathInfo.suffix && site.path != slingRequest.requestPathInfo.suffixResource.parent.path}">
- <c:forEach var="parent" items="${sling:getParents(slingRequest.requestPathInfo.suffixResource,(resource.valueMap.depth + 1))}">
- <li>
- <a href="${resource.valueMap.prefix}${parent.path}">
- <sling:encode value="${parent.valueMap['jcr:title'] != null ? parent.valueMap['jcr:title'] : parent.valueMap['jcr:content/jcr:title']}" default="${parent.name}" mode="HTML" />
- </a>
- </li>
- </c:forEach>
- </c:if>
- <c:if test="${root.path != slingRequest.requestPathInfo.suffix}">
- <li class="is-active">
- <a href="#">
- <sling:encode value="${slingRequest.requestPathInfo.suffixResource.valueMap['jcr:title'] != null ? slingRequest.requestPathInfo.suffixResource.valueMap['jcr:title'] : slingRequest.requestPathInfo.suffixResource.valueMap['jcr:content/jcr:title']}" default="${slingRequest.requestPathInfo.suffixResource.name}" mode="HTML" />
- </a>
- </li>
- </c:if>
+ <c:forEach var="item" items="${model.pathData}">
+ <li>
+ <a href="${item.href}" ${item.aria} ${item.classAttr} >
+ <sling:encode value="${item.title}" mode="HTML" />
+ </a>
+ </li>
+ </c:forEach>
</ul>
</nav>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/edit.json
new file mode 100644
index 0000000..e5f0709
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/edit.json
@@ -0,0 +1,31 @@
+ {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "title": "Suffix BreadCrumb",
+ "button": "Save Suffix Breadcrumb",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "level": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Depth",
+ "name": "depth",
+ "required": true,
+ "type": "number"
+ },
+ "levelTypeHint": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "level@TypeHint",
+ "value": "Long"
+ },
+ "prefix": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Prefix",
+ "name": "prefix",
+ "required": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentnav/contentnav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentnav/contentnav.jsp
index 17570b7..5fe486d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentnav/contentnav.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentnav/contentnav.jsp
@@ -17,36 +17,6 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<sling:findResources var="content" query="${properties.query}" language="JCR-SQL2" />
<aside class="menu">
-<a class="menu-label toggle-hidden" data-target="#nav-${fn:replace(properties.title,' ','-')}">${properties.title}</a>
-<ul class="menu-list ${fn:startsWith(slingRequest.requestURI, properties.prefix) ? '' : 'is-hidden'}" id="nav-${fn:replace(properties.title,' ','-')}">
- <c:forEach var="item" items="${content}">
- <c:set var="prefixPath" value="${item.path}/" />
- <li class="${(fn:startsWith(slingRequest.requestPathInfo.suffix, prefixPath) || slingRequest.requestPathInfo.suffix == item.path) ? 'is-active' : ''}">
- <a href="${properties.itemPrefix}${item.path}" title="View ${item.valueMap['jcr:title']}">
- <c:choose>
- <c:when test="${sling:getRelativeResource(item,'jcr:content') != null}">
- <sling:encode value="${sling:getRelativeResource(item,'jcr:content').valueMap['jcr:title']}" mode="HTML" />
- </c:when>
- <c:when test="${not empty item.valueMap['jcr:title']}">
- <sling:encode value="${item.valueMap['jcr:title']}" mode="HTML" />
- </c:when>
- <c:otherwise>
- <sling:encode value="${item.name}" mode="HTML" />
- </c:otherwise>
- </c:choose>
- </a>
- </li>
- </c:forEach>
- <c:choose>
- <c:when test="${not empty properties.createTitle}">
- <c:set var="createTitle" value="${properties.createTitle}" />
- </c:when>
- <c:otherwise>
- <c:set var="createTitle" value="${properties.title}" />
- </c:otherwise>
- </c:choose>
- <li><a href="${properties.createPath}" class="Fetch-Modal" title="Create a new ${createTitle}" data-title="Create ${createTitle}" data-path=".Main-Content form"><span class="icon is-small"><i class="jam jam-plus"></i></span> ${createTitle}</a></li>
-</ul>
+<a class="menu-label toggle-hidden" href="${properties.itemPrefix}" data-target="#nav-${fn:replace(properties.title,' ','-')}">${properties.title}</a>
</aside>
\ No newline at end of file
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 f5bad46..80819b1 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
@@ -16,40 +16,30 @@
* specific language governing permissions and limitations
* under the License.
*/ --%>
- <%@include file="/libs/sling-cms/global.jsp"%>
+<%@page import="org.apache.sling.cms.core.models.components.Breadcrumbs"%>
+<%@include file="/libs/sling-cms/global.jsp"%>
+<sling:adaptTo adaptable="${slingRequest}"
+ adaptTo="org.apache.sling.cms.core.models.components.ContentTable"
+ var="model" />
<table class="table is-fullwidth is-striped">
<thead>
<tr>
- <th>
- #
- </th>
- <c:forEach var="column" items="${sling:listChildren(sling:getRelativeResource(resource,'columns'))}">
- <th class="${column.name == 'actions' ? 'is-hidden' : '' }" data-attribute="${column.name}">
- <sling:encode value="${column.valueMap.title}" mode="HTML" />
- </th>
+ <c:forEach var="column" items="${model.columnData}">
+ <th class="${column.classString}"
+ data-attribute="${column.name}"><sling:encode
+ value="${column.title}" mode="HTML" /></th>
</c:forEach>
</tr>
</thead>
<tbody>
- <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))}">
- <sling:getResource var="typeConfig" base="${resource}" path="types/${child.valueMap['jcr:primaryType']}" />
- <c:if test="${typeConfig != null && !fn:contains(child.name,':')}">
- <tr class="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}" />">
- ${count}
- </td>
- <c:forEach var="column" items="${sling:listChildren(sling:getRelativeResource(typeConfig,'columns'))}">
- <c:set var="configPath" value="columns/${column.name}"/>
- <c:set var="colConfig" value="${sling:getRelativeResource(typeConfig,configPath)}" scope="request" />
- <c:if test="${colConfig != null}">
- <sling:include path="${child.path}" resourceType="${colConfig.valueMap['sling:resourceType']}" />
- </c:if>
- </c:forEach>
- </tr>
- <c:set var="count" value="${count + 1}" />
- </c:if>
- </c:forEach>
+ <c:forEach var="child" items="${model.children}">
+ <tr class="sortable__row" data-resource="${child.path}"
+ data-type="${child.dataType}">
+ <c:forEach var="column" items="${model.columnData}">
+ <c:set var="colConfig" value="${column.resource}" scope="request" />
+ <sling:include path="${child.path}" resourceType="${column.fieldResourceType}" />
+ </c:forEach>
+ </tr>
+ </c:forEach>
</tbody>
</table>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/resource/action/action.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/resource/action/action.jsp
new file mode 100644
index 0000000..1bea8b5
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/resource/action/action.jsp
@@ -0,0 +1,29 @@
+<%-- /*
+ * 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"%>
+<!-- modal -->
+<sling:adaptTo adaptable="${resource}"
+ adaptTo="org.apache.sling.cms.core.models.components.Action" var="model" />
+<a class="${model.classes}" data-title="${model.title}"
+ data-path="${model.dataPath}"
+ ${model.target}
+ href="${properties.prefix}${colResource.path}"
+ title="${model.title}">
+ <span class="jam jam-${model.icon}"> </span>
+</a>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp
index 7d6f342..7c008f7 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp
@@ -27,7 +27,11 @@
</c:forEach>
<ul id="${fn:replace(properties.title,' ','-')}-nav" class="menu-list ${hidden}">
<c:forEach var="item" items="${sling:listChildren(sling:getRelativeResource(resource,'links'))}">
- <li class="${fn:startsWith(slingRequest.requestURI,item.valueMap.link) ? 'active' : ''}"><a href="${item.valueMap.link}">${item.valueMap.text}</a></li>
+ <li ><a href="${item.valueMap.link}"class="${fn:startsWith(slingRequest.requestURI,item.valueMap.link) ? 'is-active' : ''}">${item.valueMap.text}</a>
+ <c:if test="${fn:startsWith(slingRequest.requestURI,item.valueMap.link) }" >
+ <sling:include path="bread" resourceType="sling-cms/components/cms/breadcrumbmenu" />
+ </c:if>
+ </li>
</c:forEach>
</ul>
</div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/file/field.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/file/field.jsp
index 9817976..7b0748c 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/file/field.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/file/field.jsp
@@ -16,59 +16,48 @@
* specific language governing permissions and limitations
* under the License.
*/ --%>
- <%@include file="/libs/sling-cms/global.jsp"%>
+<%@include file="/libs/sling-cms/global.jsp"%>
<c:choose>
- <c:when test="${properties.accepts}">
- <c:set var="accepts" value="${properties.accepts}" />
- </c:when>
- <c:otherwise>
- <c:set var="accepts" value="image/*,audio/*,video/*,application/json,text/css,application/pdf" />
- </c:otherwise>
+ <c:when test="${properties.accepts}">
+ <c:set var="accepts" value="${properties.accepts}" />
+ </c:when>
+ <c:otherwise>
+ <c:set var="accepts"
+ value="image/*,audio/*,video/*,application/json,text/css,application/pdf" />
+ </c:otherwise>
</c:choose>
<div class="repeating">
- <fieldset disabled="disabled" class="repeating__template is-hidden">
- <div class="repeating__item Grid">
+ <fieldset disabled="disabled" class="repeating__template is-hidden">
+ <div class="repeating__item Grid">
<div class="file has-name is-fullwidth">
- <label class="file-label">
- <input type="file" class="file-input" name="${properties.name}" ${required} accept="${accepts}" />
- <span class="file-cta">
- <span class="file-icon">
- <i class="jam jam-upload"></i>
- </span>
- <span class="file-label">
- Browse
- </span>
- </span>
- <span class="file-name">
- No File Selected
- </span>
- <span class='control'>
- <span class="button repeating__remove button">-</span>
- </span>
+ <label class="file-label"> <input type="file"
+ class="file-input" name="${properties.name}"
+ ${required} accept="${accepts}" /> <span
+ class="file-cta"> <span class="file-icon">
+ <i class="jam jam-upload"></i>
+ </span> <span class="file-label"> Browse </span>
+ </span> <span class="file-name"> No File Selected </span> <span
+ class='control'> <span
+ class="button repeating__remove button">-</span>
+ </span>
</label>
</div>
- </div>
- </fieldset>
- <div class="repeating__container">
- <div class="repeating__item Grid">
- <div class="file has-name is-fullwidth">
- <label class="file-label">
- <input type="file" class="file-input" name="${properties.name}" ${required} accept="${accepts}" />
- <span class="file-cta">
- <span class="file-icon">
- <i class="jam jam-upload"></i>
- </span>
- <span class="file-label">
- Browse
- </span>
- </span>
- <span class="file-name">
- No File Selected
- </span>
- <span class="button repeating__remove button">-</span>
- </label>
- </div>
- </div>
- </div>
- <button class="repeating__add button">+</button>
+ </div>
+ </fieldset>
+ <div class="repeating__container">
+ <div class="repeating__item Grid">
+ <div class="file has-name is-fullwidth">
+ <label class="file-label"> <input type="file"
+ class="file-input" name="${properties.name}"
+ ${required} accept="${accepts}" /> <span
+ class="file-cta"> <span class="file-icon">
+ <i class="jam jam-upload"></i>
+ </span> <span class="file-label"> Browse </span>
+ </span> <span class="file-name"> No File Selected </span> <span
+ class="button repeating__remove button">-</span>
+ </label>
+ </div>
+ </div>
+ </div>
+ <a class="repeating__add button">+</a>
</div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp
index 968a612..92f50ae 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp
@@ -24,9 +24,9 @@
<input type="${properties.type}" value="" class="input" name="${properties.name}" ${required} ${disabled} />
</div>
<div class="control">
- <button class="repeating__remove button">
+ <a class="repeating__remove button">
<span class="jam jam-minus"></span>
- </button>
+ </a>
</div>
</div>
</fieldset>
@@ -37,14 +37,14 @@
<input type="${properties.type}" value="${value}" class="input" name="${properties.name}" ${required} ${disabled} />
</div>
<div class="control">
- <button class="repeating__remove button">
+ <a class="repeating__remove button">
<span class="jam jam-minus"></span>
- </button>
+ </a>
</div>
</div>
</c:forEach>
</div>
- <button class="repeating__add button">
+ <a class="repeating__add button">
<span class="jam jam-plus"></span>
- </button>
+ </a>
</div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/body.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/body.jsp
index c7b0279..70ad807 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/body.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/body.jsp
@@ -16,23 +16,22 @@
* specific language governing permissions and limitations
* under the License.
*/ --%>
- <%@include file="/libs/sling-cms/global.jsp"%>
+<%@include file="/libs/sling-cms/global.jsp"%>
<body class="cms">
- <div class="gradient"></div>
- <section class="container is-fluid">
+ <div class="gradient"></div>
+ <div class="container is-fluid">
<sling:call script="nav.jsp" />
- </section>
- <section class="container is-fluid">
<div class="columns">
- <div class="column is-one-fifth">
- <sling:include path="/mnt/overlay/sling-cms/content/start/jcr:content/nav" resourceType="sling-cms/components/general/container" />
- </div>
- <div class="column">
- <main class="Main-Content">
- <sling:call script="content.jsp" />
- </main>
+ <div class="column is-2">
+ <sling:include
+ path="/mnt/overlay/sling-cms/content/start/jcr:content/nav"
+ resourceType="sling-cms/components/general/container" />
+ </div>
+ <div class="column">
+ <main class="Main-Content"> <sling:call
+ script="content.jsp" /> </main>
+ </div>
</div>
</div>
- </section>
<sling:call script="scripts.jsp" />
</body>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
index da5e167..7dc39b8 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
@@ -17,7 +17,7 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<nav class="navbar" role="navigation" aria-label="main mavigation">
+<nav class="navbar is-transparent" role="navigation" aria-label="main mavigation">
<div class="navbar-brand">
<a class="navbar-item" href="http://sling.apache.org" >
<img src="/static/clientlibs/sling-cms/img/sling-logo.svg" width="100" alt="Apache Sling"/>
@@ -34,4 +34,4 @@
<a class="navbar-item " href="/system/sling/logout" title="Logout of Apache Sling CMS"><span>${resourceResolver.userID} </span><i class="jam jam-log-out"></i></a>
</div>
</div>
-</nav>
\ No newline at end of file
+</nav>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/form.json b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/form.json
new file mode 100644
index 0000000..f815a51
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/form.json
@@ -0,0 +1,4 @@
+{
+ "jcr:primaryType" : "sling:Component",
+ "jcr:title": "CMS - Form Page"
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/form/form.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/form/form.jsp
new file mode 100644
index 0000000..16eedf0
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/form/form.jsp
@@ -0,0 +1,20 @@
+<%-- /*
+ * 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:include path="container" resourceType="sling-cms/components/general/container" />
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/config.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/config.json
new file mode 100644
index 0000000..ae5f047
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/config.json
@@ -0,0 +1,61 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Site Config",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "actionSuffix": "/*",
+ "button": "Create",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:title",
+ "required": true
+ },
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Name",
+ "name": ":name"
+ },
+ "nameParam": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": ":nameParam",
+ "value": "jcr:title"
+ },
+ "primaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:primaryType",
+ "value": "sling:Config"
+ },
+ "pageTemplatesPrimaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "pageTemplates/jcr:primaryType",
+ "value": "nt:unstructured"
+ },
+ "type": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/select",
+ "name": "sling:resourceType",
+ "optionsScript": "/libs/sling-cms/components/editor/scripts/configResourceTypeOptions.jsp",
+ "required": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/folder.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/folder.json
new file mode 100644
index 0000000..485bce9
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/folder.json
@@ -0,0 +1,54 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Folder",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "actionSuffix": "/*",
+ "button": "Create",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:content/jcr:title",
+ "required": true
+ },
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Name",
+ "name": ":name"
+ },
+ "nameParam": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": ":nameParam",
+ "value": "jcr:content/jcr:title"
+ },
+ "primaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:primaryType",
+ "value": "sling:OrderedFolder"
+ },
+ "contentPrimaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:content/jcr:primaryType",
+ "value": "nt:unstructured"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/page.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/page.json
new file mode 100644
index 0000000..bf3e2db
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/page.json
@@ -0,0 +1,33 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Page",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Create",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "pageTemplate": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/select",
+ "label": "Page Template",
+ "name": "pageTemplate",
+ "optionsScript": "/libs/sling-cms/components/editor/scripts/pageTemplateOptions.jsp"
+ },
+ "pageproperties": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/pageproperties"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/site.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/site.json
new file mode 100644
index 0000000..ecb522f
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/site.json
@@ -0,0 +1,72 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Site",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "actionSuffix": "/*",
+ "button": "Create Site",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:title",
+ "required": true
+ },
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Name",
+ "name": ":name"
+ },
+ "nameParam": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": ":nameParam",
+ "value": "jcr:title"
+ },
+ "url": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Primary URL",
+ "name": "sling:url",
+ "required": true
+ },
+ "locale": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/select",
+ "label": "Language",
+ "name": "jcr:language",
+ "optionsScript": "/libs/sling-cms/components/editor/scripts/localeOptions.jsp",
+ "required": true
+ },
+ "config": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/path",
+ "basePath": "/conf",
+ "label": "Config",
+ "name": "sling:configRef",
+ "required": false,
+ "type": "config"
+ },
+ "primaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:primaryType",
+ "value": "sling:Site"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/sitegroup.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/sitegroup.json
new file mode 100644
index 0000000..936d88a
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/sitegroup.json
@@ -0,0 +1,63 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Folder",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "actionSuffix": "/*",
+ "button": "Create Site Group",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:content/jcr:title",
+ "required": true
+ },
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Name",
+ "name": ":name"
+ },
+ "nameParam": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": ":nameParam",
+ "value": "jcr:content/jcr:title"
+ },
+ "config": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/path",
+ "basePath": "/conf",
+ "label": "Config",
+ "name": "sling:configRef",
+ "required": false,
+ "type": "config"
+ },
+ "primaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:primaryType",
+ "value": "sling:OrderedFolder"
+ },
+ "contentPrimaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:content/jcr:primaryType",
+ "value": "nt:unstructured"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/taxonomy.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/taxonomy.json
new file mode 100644
index 0000000..49aabca
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/taxonomy.json
@@ -0,0 +1,47 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Taxonomy",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "actionSuffix": "/*",
+ "button": "Create Taxonomy",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:title",
+ "required": true
+ },
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Name",
+ "name": ":name"
+ },
+ "nameParam": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": ":nameParam",
+ "value": "jcr:title"
+ },
+ "primaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:primaryType",
+ "value": "sling:Taxonomy"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/template.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/template.json
new file mode 100644
index 0000000..d18f3d3
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/template.json
@@ -0,0 +1,54 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Template",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "actionSuffix": "/templates/",
+ "button": "Create Template",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:title",
+ "required": true
+ },
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Name",
+ "name": ":name"
+ },
+ "nameParam": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": ":nameParam",
+ "value": "jcr:title"
+ },
+ "primaryType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:primaryType",
+ "value": "nt:unstructured"
+ },
+ "resourceType": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "sling:resourceType",
+ "value": "sling-cms/components/cms/pagetemplate"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/file.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/file.json
new file mode 100644
index 0000000..c454066
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/file.json
@@ -0,0 +1,21 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Edit File",
+ "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>Edit File</h3>"
+ },
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/fileeditorinclude"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/folder.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/folder.json
new file mode 100644
index 0000000..1e41cbe
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/folder.json
@@ -0,0 +1,29 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Edit Folder",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Save Changes",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:content/jcr:title",
+ "required": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/site.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/site.json
new file mode 100644
index 0000000..e62680d
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/site.json
@@ -0,0 +1,59 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Edit Site",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Save Changes",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:title",
+ "required": true
+ },
+ "description": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/textarea",
+ "label": "Description",
+ "name": "jcr:description",
+ "required": false
+ },
+ "url": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Primary URL",
+ "name": "sling:url",
+ "required": true
+ },
+ "locale": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/select",
+ "label": "Language",
+ "name": "jcr:language",
+ "optionsScript": "/libs/sling-cms/components/editor/scripts/localeOptions.jsp",
+ "required": true
+ },
+ "config": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/path",
+ "basePath": "/conf",
+ "label": "Config",
+ "name": "sling:configRef",
+ "required": false,
+ "type": "config"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/sitegroup.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/sitegroup.json
new file mode 100644
index 0000000..d61c3d2
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/sitegroup.json
@@ -0,0 +1,38 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Edit Site Group",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Save Changes",
+ "successPrepend": "/libs/sling-cms/content/site/content.html",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:content/jcr:title",
+ "required": true
+ },
+ "config": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/path",
+ "basePath": "/conf",
+ "label": "Config",
+ "name": "sling:configRef",
+ "required": false,
+ "type": "config"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/taxonomy.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/taxonomy.json
new file mode 100644
index 0000000..59e3b47
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/taxonomy.json
@@ -0,0 +1,28 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Edit Taxonomy Item",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Save Changes",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Title",
+ "name": "jcr:title",
+ "required": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/template.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/template.json
new file mode 100644
index 0000000..f02fa95
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/template.json
@@ -0,0 +1,16 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Configure Site",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "siteconfig": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/templateeditor"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/optimize/optimize.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/optimize/optimize.json
new file mode 100644
index 0000000..eded2e9
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/optimize/optimize.json
@@ -0,0 +1,16 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Optimize File",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/optimizefile"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/delete.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/delete.json
new file mode 100644
index 0000000..d5c30c4
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/delete.json
@@ -0,0 +1,40 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Delete Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Delete",
+ "callback": "handledelete",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "path": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/suffixlabel",
+ "label": "Do you want to delete:"
+ },
+ "operation": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": ":operation",
+ "value": "delete"
+ },
+ "references": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/references",
+ "includeDestination": true,
+ "label": "Update references?",
+ "name": ":updateReferences"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/movecopy.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/movecopy.json
new file mode 100644
index 0000000..0b70b80
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/movecopy.json
@@ -0,0 +1,59 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Move/Copy Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Move/Copy",
+ "callback": "handlemove",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "path": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/suffixlabel",
+ "label": "Existing Path:"
+ },
+ "destination": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/path",
+ "label": "Destination:",
+ "name": ":dest"
+ },
+ "operation": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/select",
+ "label": "Operation",
+ "name": ":operation",
+ "options": {
+ "jcr:primaryType": "nt:unstructured",
+ "copy": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Copy",
+ "value": "copy"
+ },
+ "move": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Move",
+ "value": "move"
+ }
+ }
+ },
+ "references": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/references",
+ "label": "Update References?",
+ "name": ":updateReferences",
+ "toggle": true
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/publish.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/publish.json
new file mode 100644
index 0000000..6206d21
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/publish.json
@@ -0,0 +1,38 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Publish Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Publish",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "path": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/suffixlabel",
+ "label": "Do you want to publish:"
+ },
+ "published": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:content/published",
+ "value": "true"
+ },
+ "publishedTypeHint": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:content/published@TypeHint",
+ "value": "Boolean"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/search.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/search.json
new file mode 100644
index 0000000..7ca912a
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/search.json
@@ -0,0 +1,53 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Search",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "searchform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/getform",
+ "button": "Search",
+ "load": "#search-results",
+ "target": "#search-results",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "term": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/text",
+ "label": "Term",
+ "name": "term",
+ "required": "required"
+ },
+ "type": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/select",
+ "name": "type",
+ "label": "Content Type",
+ "options": [
+ "Page=sling:Page",
+ "File=sling:File",
+ "Folder=sling:Folder",
+ "Everything=nt:base"
+ ]
+ },
+ "path": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/path",
+ "label": "Path",
+ "name": "path",
+ "hidesearch": true
+ }
+ }
+ },
+ "searchresults": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/searchresults"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/unpublish.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/unpublish.json
new file mode 100644
index 0000000..3abdecd
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/unpublish.json
@@ -0,0 +1,38 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Unpublish Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Unpublish",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "path": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/suffixlabel",
+ "label": "Do you want to unpublish:"
+ },
+ "published": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:content/published",
+ "value": "false"
+ },
+ "publishedTypeHint": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "jcr:content/published@TypeHint",
+ "value": "Boolean"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/versions.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/versions.json
new file mode 100644
index 0000000..9fda781
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/versions.json
@@ -0,0 +1,16 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Manage Versions",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "versionmanager": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/versionmanager"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/upload/file.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/upload/file.json
new file mode 100644
index 0000000..2f0bdbb
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/upload/file.json
@@ -0,0 +1,34 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Upload File",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "slingform": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ "button": "Upload File",
+ "fields": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "file": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/file",
+ "label": "File",
+ "name": "*",
+ "required": true
+ },
+ "typeHint": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+ "name": "*@TypeHint",
+ "value": "sling:File"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/browse/browse.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/browse/browse.json
new file mode 100644
index 0000000..0129958
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/browse/browse.json
@@ -0,0 +1,70 @@
+{
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Site Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "page": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Site",
+ "icon": "jam jam-document",
+ "prefix": "/cms/actions/create/site.html"
+ },
+ "folder": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Site Group",
+ "icon": "jam jam-document-f",
+ "prefix": "/cms/actions/create/sitegroup.html"
+ }
+ }
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "defaultPath": "/content",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "resourceTypes": [
+ "sling:Site",
+ "sling:OrderedFolder",
+ "sling:Folder",
+ "sling:Page",
+ "nt:file"
+ ],
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "link": true,
+ "jcr:title": "Name",
+ "prefix": "/cms/site/sites.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "jcr:content/jcr:title",
+ "jcr:title": "Title",
+ "type": "String"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": "jcr:content/"
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "jcr:title": "Actions"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/create.json
deleted file mode 100644
index 65707c6..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/create.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Site Config",
- "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>Create Site Config</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Site Config",
- "successPrepend": "/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:title",
- "required": true
- },
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Name",
- "name": ":name"
- },
- "nameParam": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": ":nameParam",
- "value": "jcr:title"
- },
- "primaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:primaryType",
- "value": "sling:Config"
- },
- "pageTemplatesPrimaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "pageTemplates/jcr:primaryType",
- "value": "nt:unstructured"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/select",
- "name": "sling:resourceType",
- "optionsScript": "/libs/sling-cms/components/editor/scripts/configResourceTypeOptions.jsp",
- "required": true
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/edit.json
index 8e475ce..29af331 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/edit.json
@@ -1,27 +1,21 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Configuration",
- "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": "<h2>Edit Configuration</h2>"
- },
- "contentbreadcrumb": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
- "depth": 2,
- "prefix": "/cms/config/list.html"
- },
- "editconfig": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/editconfig"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Edit Configuration",
+ "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": "<h2>Edit Configuration</h2>"
+ },
+ "editconfig": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/editconfig"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/list.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/list.json
index 71e2a81..11809a1 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/list.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/list.json
@@ -1,159 +1,91 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Site Configurations",
- "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>Configurations</h3>"
- },
- "contentactions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentactions",
- "actions": {
- "folder": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Folder",
- "prefix": "/cms/folder/create.html"
- },
- "config": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Config",
- "prefix": "/cms/config/create.html"
- }
- }
- },
- "contentbreadcrumb": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
- "depth": 2,
- "prefix": "/cms/config/list.html"
- },
- "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"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Actions"
- }
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "sling:Config": {
- "jcr:primaryType": "nt:unstructured",
- "columns": {
- "jcr:primaryType": "nt:unstructured",
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/name",
- "prefix": "/cms/config/edit.html",
- "link": true
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:title"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": ""
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Site Config",
- "icon": "pencil-f",
- "prefix": "/cms/config/metadata.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Config",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Site Config",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:OrderedFolder": {
- "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/config/list.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:content/jcr:title"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Folder",
- "icon": "pencil-f",
- "prefix": "/cms/folder/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Folder",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Folder",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Site Configurations",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "folder": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Folder",
+ "prefix": "/cms/actions/create/folder.html"
+ },
+ "config": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Config",
+ "prefix": "/cms/actions/create/config.html"
+ }
+ }
+ },
+ "contentbreadcrumb": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
+ "depth": 2,
+ "prefix": "/cms/config/list.html"
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "resourceTypes": [
+ "sling:OrderedFolder",
+ "sling:Folder",
+ "sling:Conf",
+ "nt:file"
+ ],
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "jcr:title": "Name",
+ "prefix": "/cms/config/list.html",
+ "link": true
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "jcr:title": "Title",
+ "property": "jcr:title"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": ""
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Site Config",
+ "icon": "pencil-f",
+ "prefix": "/cms/config/metadata.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Config",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Site Config",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/edit.json
deleted file mode 100644
index 6887601..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/edit.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit File",
- "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>Edit File</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/fileeditorinclude"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/optimize.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/optimize.json
deleted file mode 100644
index 373a184..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/optimize.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Optimize File",
- "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>Optimize File</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/optimizefile"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/upload.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/upload.json
deleted file mode 100644
index 1723c34..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/upload.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Upload File",
- "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>Upload File</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Upload File",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "file": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/file",
- "label": "File",
- "name": "*",
- "required": true
- },
- "typeHint": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "*@TypeHint",
- "value": "sling:File"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/create.json
deleted file mode 100644
index 73a0458..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/create.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Folder",
- "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>Create Folder</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Folder",
- "successPrepend":"/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:content/jcr:title",
- "required": true
- },
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Name",
- "name": ":name"
- },
- "nameParam": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": ":nameParam",
- "value":"jcr:content/jcr:title"
- },
- "primaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:primaryType",
- "value": "sling:OrderedFolder"
- },
- "contentPrimaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:content/jcr:primaryType",
- "value": "nt:unstructured"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/edit.json
deleted file mode 100644
index b2092a5..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/edit.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Folder",
- "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>Edit Folder</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Edit Folder",
- "successPrepend":"/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:content/jcr:title",
- "required": true
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/mappings/list.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/mappings/list.json
index 01804ee..b1ba3cf 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/mappings/list.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/mappings/list.json
@@ -1,153 +1,153 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Mappings",
- "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>Mappings</h3>"
- },
- "contentactions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentactions",
- "actions": {
- "folder": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Folder",
- "prefix": "/cms/folder/create.html"
- },
- "mappings": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Mapping",
- "prefix": "/cms/mappings/create.html"
- }
- }
- },
- "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": "Match"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Actions"
- }
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "sling:Mapping": {
- "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/mappings/list.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "sling:match"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": ""
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Mapping",
- "icon": "pencil-f",
- "prefix": "/cms/mappings/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Mapping",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Mapping",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:OrderedFolder": {
- "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/mappings/list.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": ""
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Folder",
- "icon": "pencil-f",
- "prefix": "/cms/folder/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Folder",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Folder",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Mappings",
+ "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>Mappings</h3>"
+ },
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "folder": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Folder",
+ "prefix": "/cms/folder/create.html"
+ },
+ "mappings": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Mapping",
+ "prefix": "/cms/mappings/create.html"
+ }
+ }
+ },
+ "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": "Match"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Last Modified"
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Actions"
+ }
+ },
+ "types": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:Mapping": {
+ "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/mappings/list.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "sling:match"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "subPath": ""
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Mapping",
+ "icon": "pencil-f",
+ "prefix": "/cms/mappings/edit.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Mapping",
+ "icon": "move-alt",
+ "prefix": "/cms/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Mapping",
+ "icon": "trash",
+ "prefix": "/cms/shared/delete.html"
+ }
+ }
+ }
+ },
+ "sling:OrderedFolder": {
+ "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/mappings/list.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/static",
+ "value": ""
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "subPath": "jcr:content/"
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Folder",
+ "icon": "pencil-f",
+ "prefix": "/cms/folder/edit.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Folder",
+ "icon": "move-alt",
+ "prefix": "/cms/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Folder",
+ "icon": "trash",
+ "prefix": "/cms/shared/delete.html"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/create.json
deleted file mode 100644
index e04c69a..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/create.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Page",
- "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>Create Page</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Create Page",
- "successPrepend":"/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "pageTemplate": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/select",
- "label": "Page Template",
- "name": "pageTemplate",
- "optionsScript": "/libs/sling-cms/components/editor/scripts/pageTemplateOptions.jsp"
- },
- "pageproperties": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/pageproperties"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/edit.json
index 82bc782..b320cc6 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/edit.json
@@ -1,54 +1,54 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "jcr:primaryType": "nt:unstructured",
- "jcr:title": "Edit",
- "sling:resourceType": "sling-cms/components/pages/editor",
- "container": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "pageeditbar": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/pageeditbar",
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/pageeditbar/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "ajaxPath": ".Form-Ajax",
- "modal": true,
- "prefix": "/cms/page/editproperties.html",
- "title": "Edit Page",
- "icon": "pencil-f"
- },
- "version": {
- "jcr:primaryType": "nt:unstructured",
- "ajaxPath": ".versionmanager",
- "modal": true,
- "title": "Manage Versions",
- "icon": "history",
- "prefix": "/cms/shared/versions.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Page",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Page",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- },
- "pageeditor": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/pageeditor"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "Edit",
+ "sling:resourceType": "sling-cms/components/pages/editor",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "pageeditbar": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/pageeditbar",
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/pageeditbar/actions",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "ajaxPath": ".Form-Ajax",
+ "modal": true,
+ "prefix": "/cms/page/editproperties.html",
+ "title": "Edit Page",
+ "icon": "pencil-f"
+ },
+ "version": {
+ "jcr:primaryType": "nt:unstructured",
+ "ajaxPath": ".versionmanager",
+ "modal": true,
+ "title": "Manage Versions",
+ "icon": "history",
+ "prefix": "/cms/actions/shared/versions.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Page",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Page",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+ }
+ },
+ "pageeditor": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/pageeditor"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/editproperties.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/editproperties.json
index b6df91d..80c27e1 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/editproperties.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/editproperties.json
@@ -1,16 +1,16 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "jcr:primaryType": "nt:unstructured",
- "jcr:title": "Edit Properties",
- "sling:resourceType": "sling-cms/components/pages/editor",
- "container": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "pageeditor": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/pageeditbar/propertieseditor"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "Edit Properties",
+ "sling:resourceType": "sling-cms/components/pages/editor",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "pageeditor": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/pageeditbar/propertieseditor"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/pagewrapper.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/pagewrapper.json
index b9c1469..aefeb29 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/pagewrapper.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/pagewrapper.json
@@ -1,4 +1,4 @@
{
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType" : "sling-cms/components/cms/pagewrapper"
-}
\ No newline at end of file
+ "sling:resourceType": "sling-cms/components/cms/pagewrapper"
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/siteeditproperties.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/siteeditproperties.json
index 522d698..285fb48 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/siteeditproperties.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/siteeditproperties.json
@@ -1,21 +1,16 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Page",
- "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>Edit Page</h3>"
- },
- "pageeditor": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/pageeditbar/propertieseditor"
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Edit Page",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "pageeditor": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/pageeditbar/propertieseditor"
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/delete.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/delete.json
deleted file mode 100644
index 6b9b365..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/delete.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Delete Content",
- "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>Delete Content</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Delete",
- "callback": "handledelete",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "path": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/suffixlabel",
- "label": "Do you want to delete:"
- },
- "operation": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": ":operation",
- "value": "delete"
- },
- "references": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/references",
- "includeDestination": true,
- "label": "Update references?",
- "name": ":updateReferences"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/movecopy.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/movecopy.json
deleted file mode 100644
index 8d6c399..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/movecopy.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Move/Copy Content",
- "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>Move/Copy Content</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Move/Copy",
- "callback": "handlemove",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "path": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType" : "sling-cms/components/editor/fields/suffixlabel",
- "label": "Existing Path:"
- },
- "destination": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType" : "sling-cms/components/editor/fields/path",
- "label": "Destination:",
- "name": ":dest"
- },
- "operation": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/select",
- "label": "Operation",
- "name": ":operation",
- "options": {
- "jcr:primaryType": "nt:unstructured",
- "copy":{
- "jcr:primaryType": "nt:unstructured",
- "label": "Copy",
- "value": "copy"
- },
- "move":{
- "jcr:primaryType": "nt:unstructured",
- "label": "Move",
- "value": "move"
- }
- }
- },
- "references": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/references",
- "label": "Update References?",
- "name": ":updateReferences",
- "toggle": true
- }
- }
- }
- }
- }
-}
\ 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
deleted file mode 100644
index 2abc9d5..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/publish.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Publish Content",
- "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>Publish Content</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Publish",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "path": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType" : "sling-cms/components/editor/fields/suffixlabel",
- "label": "Do you want to publish:"
- },
- "published": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:content/published",
- "value": "true"
- },
- "publishedTypeHint": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:content/published@TypeHint",
- "value": "Boolean"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
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
deleted file mode 100644
index ece8b0f..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/unpublish.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Unpublish Content",
- "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>Unpublish Content</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Unpublish",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "path": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType" : "sling-cms/components/editor/fields/suffixlabel",
- "label": "Do you want to unpublish:"
- },
- "published": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:content/published",
- "value": "false"
- },
- "publishedTypeHint": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:content/published@TypeHint",
- "value": "Boolean"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/versions.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/versions.json
deleted file mode 100644
index ca321bf..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/versions.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Manage Versions",
- "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>Manage Versions</h3>"
- },
- "versionmanager": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/versionmanager"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
index 7b1cc8e..e5941cf 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
@@ -1,337 +1,81 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Site Content",
- "jcr:primaryType": "nt:unstructured",
- "container": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "contentactions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentactions",
- "actions": {
- "page": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Page",
- "prefix": "/cms/page/create.html"
- },
- "file": {
- "jcr:primaryType": "nt:unstructured",
- "label": "File",
- "prefix": "/cms/file/upload.html"
- },
- "folder": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Folder",
- "prefix": "/cms/folder/create.html"
- }
- }
- },
- "contentbreadcrumb": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
- "depth": 2,
- "prefix": "/cms/site/content.html",
- "titleProp": "jcr:content/jcr:title"
- },
- "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"
- },
- "published": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Published"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Type"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Actions"
- }
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "sling:Page": {
- "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/site/content.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:content/jcr:title",
- "type": "String"
- },
- "publish": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/publish"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": "Page"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": false,
- "title": "Edit Page",
- "icon": "pencil-f",
- "prefix": "/cms/page/edit.html"
- },
- "properties": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Page Properties",
- "icon": "cog",
- "prefix": "/cms/page/siteeditproperties.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Page",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "version": {
- "jcr:primaryType": "nt:unstructured",
- "ajaxPath": ".versionmanager",
- "modal": true,
- "title": "Manage Versions",
- "icon": "history",
- "prefix": "/cms/shared/versions.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete the specified page",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:File": {
- "jcr:primaryType": "nt:unstructured",
- "columns": {
- "jcr:primaryType": "nt:unstructured",
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/name",
- "link": false
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "link": false,
- "type": "Name"
- },
- "publish": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/publish"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": "File"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit File",
- "icon": "pencil-f",
- "prefix": "/cms/file/edit.html"
- },
- "optimize": {
- "jcr:primaryType": "nt:unstructured",
- "modal": false,
- "title": "Optimize File",
- "icon": "archive",
- "prefix": "/cms/file/optimize.html"
- },
- "download": {
- "jcr:primaryType": "nt:unstructured",
- "modal": false,
- "title": "Download file",
- "icon": "download"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy File",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "version": {
- "jcr:primaryType": "nt:unstructured",
- "ajaxPath": ".versionmanager",
- "modal": true,
- "title": "Manage Versions",
- "icon": "history",
- "prefix": "/cms/shared/versions.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete File",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:OrderedFolder": {
- "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/site/content.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:content/jcr:title",
- "type": "String"
- },
- "publish": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/publish"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": "Folder"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Folder",
- "icon": "pencil-f",
- "prefix": "/cms/folder/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Folder",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Folder",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:Folder": {
- "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/site/content.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:content/jcr:title",
- "type": "String"
- },
- "publish": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/publish"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": "Folder"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Folder",
- "icon": "pencil-f",
- "prefix": "/cms/folder/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Folder",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Folder",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- }
- }
- }
- }
- }
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Site Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "page": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Page",
+ "prefix": "/cms/actions/create/page.html"
+ },
+ "file": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "File",
+ "prefix": "/cms/actions/upload/file.html"
+ },
+ "folder": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Folder",
+ "prefix": "/cms/actons/create/folder/create.html"
+ }
+ }
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "columns": {
+ "resourceTypes": [
+ "sling:Page",
+ "sling:File",
+ "sling:Site",
+ "sling:OrderedFolder",
+ "sling:Folder"
+ ],
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "link": true,
+ "jcr:title": "Name",
+ "prefix": "/cms/site/content.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "jcr:content/jcr:title",
+ "jcr:title": "Title",
+ "type": "String"
+ },
+ "publish": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "Publish",
+ "sling:resourceType": "sling-cms/components/cms/columns/publish"
+ },
+ "type": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/static",
+ "jcr:title": "Type",
+ "value": "Page"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": "jcr:content/"
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions"
+ }
+ }
+ }
+ }
+ }
}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/create.json
deleted file mode 100644
index 5d6c0e9..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/create.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Site",
- "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>Create Site</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Site",
- "successPrepend": "/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:title",
- "required": true
- },
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Name",
- "name": ":name"
- },
- "nameParam": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": ":nameParam",
- "value": "jcr:title"
- },
- "url": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Primary URL",
- "name": "sling:url",
- "required": true
- },
- "locale": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/select",
- "label": "Language",
- "name": "jcr:language",
- "optionsScript": "/libs/sling-cms/components/editor/scripts/localeOptions.jsp",
- "required": true
- },
- "config": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/path",
- "basePath": "/conf",
- "label": "Config",
- "name": "sling:configRef",
- "required": false,
- "type": "config"
- },
- "primaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:primaryType",
- "value": "sling:Site"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/creategroup.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/creategroup.json
deleted file mode 100644
index 9b434ac..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/creategroup.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Folder",
- "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>Create Site Group</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Site Group",
- "successPrepend": "/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:content/jcr:title",
- "required": true
- },
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Name",
- "name": ":name"
- },
- "nameParam": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": ":nameParam",
- "value": "jcr:content/jcr:title"
- },
- "config": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/path",
- "basePath": "/conf",
- "label": "Config",
- "name": "sling:configRef",
- "required": false,
- "type": "config"
- },
- "primaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:primaryType",
- "value": "sling:OrderedFolder"
- },
- "contentPrimaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:content/jcr:primaryType",
- "value": "nt:unstructured"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/edit.json
deleted file mode 100644
index 319e9a5..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/edit.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Site",
- "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>Edit Site</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Edit Site",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:title",
- "required": true
- },
- "description": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/textarea",
- "label": "Description",
- "name": "jcr:description",
- "required": false
- },
- "url": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Primary URL",
- "name": "sling:url",
- "required": true
- },
- "locale": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/select",
- "label": "Language",
- "name": "jcr:language",
- "optionsScript": "/libs/sling-cms/components/editor/scripts/localeOptions.jsp",
- "required": true
- },
- "config": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/path",
- "basePath": "/conf",
- "label": "Config",
- "name": "sling:configRef",
- "required": false,
- "type": "config"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json
deleted file mode 100644
index a508fc6..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Site Group",
- "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>Edit Site Group</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Folder",
- "successPrepend":"/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:content/jcr:title",
- "required": true
- },
- "config": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/path",
- "basePath": "/conf",
- "label": "Config",
- "name": "sling:configRef",
- "required": false,
- "type": "config"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/sites.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/sites.json
index 79f34a3..0129958 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/sites.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/sites.json
@@ -1,158 +1,70 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Site Content",
- "jcr:primaryType": "nt:unstructured",
- "container": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "contentactions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentactions",
- "actions": {
- "page": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Site",
- "icon" : "jam jam-document",
- "prefix": "/cms/site/create.html"
- },
- "folder": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Site Group",
- "icon" : "jam jam-document-f",
- "prefix": "/cms/site/creategroup.html"
- }
- }
- },
- "contentbreadcrumb": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
- "depth": 2,
- "prefix": "/cms/site/sites.html",
- "titleProp": "jcr:content/jcr:title"
- },
- "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"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Actions"
- }
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "sling:Site":{
- "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/site/content.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:title",
- "type": "String"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Site",
- "icon": "pencil-f",
- "prefix": "/cms/site/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Site",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete the specified site",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:OrderedFolder":{
- "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/site/sites.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:content/jcr:title",
- "type": "String"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Site Group",
- "icon": "pencil-f",
- "prefix": "/cms/site/editgroup.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Site Group",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Delete Site Group",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html",
- "modal": true
- }
- }
- }
- }
- }
- }
- }
- }
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Site Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "page": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Site",
+ "icon": "jam jam-document",
+ "prefix": "/cms/actions/create/site.html"
+ },
+ "folder": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Site Group",
+ "icon": "jam jam-document-f",
+ "prefix": "/cms/actions/create/sitegroup.html"
+ }
+ }
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "defaultPath": "/content",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "resourceTypes": [
+ "sling:Site",
+ "sling:OrderedFolder",
+ "sling:Folder",
+ "sling:Page",
+ "nt:file"
+ ],
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "link": true,
+ "jcr:title": "Name",
+ "prefix": "/cms/site/sites.html"
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "jcr:content/jcr:title",
+ "jcr:title": "Title",
+ "type": "String"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": "jcr:content/"
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "jcr:title": "Actions"
+ }
+ }
+ }
+ }
+ }
}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/siteconfig/editor.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/siteconfig/editor.json
index 49ce2d8..3ef82cc 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/siteconfig/editor.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/siteconfig/editor.json
@@ -1,94 +1,57 @@
{
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "richtext": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/richtext",
- "text": "<br/><h3>Templates</h3>"
- },
- "contentactions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentactions",
- "actions": {
- "template": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Template",
- "prefix": "/cms/template/create.html"
- }
- }
- },
- "contenttable": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contenttable",
- "appendSuffix": "/templates",
- "columns": {
- "jcr:primaryType": "nt:unstructured",
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Name"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Title"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Actions"
- }
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "nt:unstructured": {
- "jcr:primaryType": "nt:unstructured",
- "columns": {
- "jcr:primaryType": "nt:unstructured",
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/name",
- "link": false
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:title"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": ""
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": false,
- "new": false,
- "title": "Edit Template",
- "icon": "pencil-f",
- "prefix": "/cms/template/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Template",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Template",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "richtext": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/richtext",
+ "text": "<br/><h3>Templates</h3>"
+ },
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "template": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Template",
+ "prefix": "/cms/template/create.html"
+ }
+ }
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "appendSuffix": "/templates",
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "resourceTypes": [
+ "sling:OrderedFolder",
+ "sling:Folder",
+ "sling:Conf",
+ "nt:file"
+ ],
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "jcr:title": "Name",
+ "link": false
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "jcr:title": "Title",
+ "property": "jcr:title"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": ""
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "Actions",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions"
+ }
+ }
+ }
+}
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 d8bce41..bec8c39 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
@@ -19,53 +19,38 @@
"nav": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
- "sitenav": {
+ "othernav": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentnav",
- "createPath": "/cms/site/creategroup.html/content",
- "createTitle": "Site Group",
- "prefix": "/cms/site",
- "itemPrefix": "/cms/site/sites.html",
- "query": "SELECT * FROM [sling:OrderedFolder] AS s WHERE ISCHILDNODE(s,'/content') ORDER BY NAME()",
- "title": "Sites"
- },
- "staticnav": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentnav",
- "createPath": "/cms/folder/create.html/static",
- "createTitle": "Folder",
- "prefix": "/cms/static",
- "itemPrefix": "/cms/static/content.html",
- "query": "SELECT * FROM [sling:Folder] AS s WHERE ISCHILDNODE(s,'/static') ORDER BY NAME()",
- "title": "Static Content"
- },
- "taxonomynav": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentnav",
- "createPath": "/cms/taxonomy/create.html/etc/taxonomy",
- "prefix": "/cms/taxonomy",
- "itemPrefix": "/cms/taxonomy/list.html",
- "query": "SELECT * FROM [sling:Taxonomy] AS s WHERE ISCHILDNODE(s,'/etc/taxonomy') ORDER BY NAME()",
- "title": "Taxonomy"
- },
- "configurationnav": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentnav",
- "createPath": "/cms/folder/create.html/conf",
- "prefix": "/cms/config",
- "itemPrefix": "/cms/config/list.html",
- "query": "SELECT * FROM [sling:OrderedFolder] AS s WHERE ISCHILDNODE(s,'/conf') ORDER BY NAME()",
- "title": "Configuration"
- },
- "usergeneratednav": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentnav",
- "createPath": "/cms/folder/create.html/etc/usergenerated",
- "createFolder": "Bucket",
- "prefix": "/cms/usergenerated",
- "itemPrefix": "/cms/usergenerated/content.html",
- "query": "SELECT * FROM [sling:OrderedFolder] AS s WHERE ISCHILDNODE(s,'/etc/usergenerated') ORDER BY NAME()",
- "title": "User Generated"
+ "sling:resourceType": "sling-cms/components/cms/staticnav",
+ "title": "Manage",
+ "links": {
+ "jcr:primaryType": "nt:unstructured",
+ "sitenav": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/site/sites.html/content",
+ "text": "Sites"
+ },
+ "staticnav": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/static/content.html/static",
+ "text": "Static Content"
+ },
+ "taxonomy": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/taxonomy/list.html/etc/taxonomy",
+ "text": "Taxonomy"
+ },
+ "config": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/config/list.html/conf",
+ "text": "Configuration"
+ },
+ "usergenerated": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/usergenerated/content.html/etc/usergenerated",
+ "text": "User Generated"
+ }
+ }
},
"toolsnav": {
"jcr:primaryType": "nt:unstructured",
@@ -73,48 +58,51 @@
"title": "Tools",
"links": {
"jcr:primaryType": "nt:unstructured",
- "bulkreplace": {
+ "links": {
"jcr:primaryType": "nt:unstructured",
- "link": "/cms/admin/bulkreplace.html",
- "text": "Bulk Replace"
- },
- "contentpackages": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/bin/packages.html",
- "text": "Content Packages"
- },
- "i18n": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/cms/i18n/dictionaries.html/etc/i18n",
- "text": "Internationalization (i18n)"
- },
- "loadcontent": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/cms/admin/loadcontent.html",
- "text": "Load Content"
- },
- "mappings": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/cms/mappings/list.html/etc/map",
- "text": "Mappings"
- },
- "nodebrowser": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/bin/browser.html",
- "text": "Node Browser"
- },
- "systemconsole": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/system/console",
- "text": "System Console"
- },
- "usersgroups": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/bin/users.html",
- "text": "Users & Groups"
+ "bulkreplace": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/admin/bulkreplace.html",
+ "text": "Bulk Replace"
+ },
+ "contentpackages": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/bin/packages.html",
+ "text": "Content Packages"
+ },
+ "i18n": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/i18n/dictionaries.html/etc/i18n",
+ "text": "Internationalization (i18n)"
+ },
+ "loadcontent": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/admin/loadcontent.html",
+ "text": "Load Content"
+ },
+ "mappings": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/mappings/list.html/etc/map",
+ "text": "Mappings"
+ },
+ "nodebrowser": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/bin/browser.html",
+ "text": "Node Browser"
+ },
+ "systemconsole": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/system/console",
+ "text": "System Console"
+ },
+ "usersgroups": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/bin/users.html",
+ "text": "Users & Groups"
+ }
}
}
}
}
}
-}
\ No newline at end of file
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/static/content.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/static/content.json
index d7ede68..06704ba 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/static/content.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/static/content.json
@@ -1,260 +1,120 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Static Content",
- "jcr:primaryType": "nt:unstructured",
- "container": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "contentactions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentactions",
- "actions": {
- "file": {
- "jcr:primaryType": "nt:unstructured",
- "label": "File",
- "prefix": "/cms/file/upload.html"
- },
- "folder": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Folder",
- "prefix": "/cms/folder/create.html"
- }
- }
- },
- "contentbreadcrumb": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
- "depth": 2,
- "prefix": "/cms/static/content.html",
- "titleProp": "jcr:content/jcr:title"
- },
- "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"
- },
- "published": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Published"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Type"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Actions"
- }
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "sling:File":{
- "jcr:primaryType": "nt:unstructured",
- "columns": {
- "jcr:primaryType": "nt:unstructured",
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/name",
- "link": false
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "link": false,
- "type": "Name"
- },
- "publish": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/publish"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": "File"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit File",
- "icon": "pencil-f",
- "prefix": "/cms/file/edit.html"
- },
- "optimize": {
- "jcr:primaryType": "nt:unstructured",
- "modal": false,
- "title": "Optimize File",
- "icon": "archive",
- "prefix": "/cms/file/optimize.html"
- },
- "download": {
- "jcr:primaryType": "nt:unstructured",
- "modal": false,
- "title": "Download file",
- "icon": "download"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy File",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "version": {
- "jcr:primaryType": "nt:unstructured",
- "ajaxPath": ".versionmanager",
- "modal": true,
- "title": "Manage Versions",
- "icon": "history",
- "prefix": "/cms/shared/versions.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete File",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:OrderedFolder":{
- "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/static/content.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:content/jcr:title",
- "type": "String"
- },
- "publish": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/publish"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": "Folder"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Folder",
- "icon": "pencil-f",
- "prefix": "/cms/folder/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Folder",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Folder",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- },
- "sling:Folder":{
- "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/static/content.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:content/jcr:title",
- "type": "String"
- },
- "publish": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/publish"
- },
- "type": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/static",
- "value": "Folder"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": "jcr:content/"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Folder",
- "icon": "pencil-f",
- "prefix": "/cms/folder/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Folder",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Folder",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- }
- }
- }
- }
- }
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Static Content",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "file": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "File",
+ "prefix": "/cms/actions/upload/file.html"
+ },
+ "folder": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Folder",
+ "prefix": "/cms/actions/create/folder.html"
+ }
+ }
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "defaultPath": "/content",
+ "columns": {
+ "resourceTypes": [
+ "sling:Conf",
+ "sling:OrderedFolder",
+ "sling:Folder",
+ "nt:file"
+ ],
+ "jcr:primaryType": "nt:unstructured",
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "jcr:title": "Name",
+ "prefix": "/cms/static/content.html",
+ "link": true
+ },
+ "title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "link": false,
+ "jcr:title": "Title",
+ "type": "Name"
+ },
+ "publish": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": "Publish",
+ "sling:resourceType": "sling-cms/components/cms/columns/publish"
+ },
+ "type": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/static",
+ "jcr:title": "Type",
+ "value": "Folder"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": "jcr:content/"
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "jcr:title": "Actions",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit File",
+ "icon": "pencil-f",
+ "prefix": "/cms/actions/edit/file.html"
+ },
+ "optimize": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Optimize File",
+ "icon": "archive",
+ "prefix": "/cms/file/optimize.html"
+ },
+ "download": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Download file",
+ "icon": "download"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy File",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "version": {
+ "jcr:primaryType": "nt:unstructured",
+ "ajaxPath": ".versionmanager",
+ "modal": true,
+ "title": "Manage Versions",
+ "icon": "history",
+ "prefix": "/cms/actions/shared/versions.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete File",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+ }
+ }
+ }
+ }
+ }
}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/create.json
deleted file mode 100644
index 88a7528..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/create.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Taxonomy",
- "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>Create Taxonomy</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Taxonomy",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:title",
- "required": true
- },
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Name",
- "name": ":name"
- },
- "nameParam": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": ":nameParam",
- "value": "jcr:title"
- },
- "primaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:primaryType",
- "value": "sling:Taxonomy"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/edit.json
deleted file mode 100644
index 3da06ed..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/edit.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Taxonomy Item",
- "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>Edit Taxonomy Item</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Update Taxonomy",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:title",
- "required": true
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/list.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/list.json
index 5d4d4c5..7651be1 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/list.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/list.json
@@ -1,102 +1,68 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Taxonomy",
- "jcr:primaryType": "nt:unstructured",
- "container": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "contentactions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentactions",
- "actions": {
- "taxonomy": {
- "jcr:primaryType": "nt:unstructured",
- "label": "Taxonomy Item",
- "prefix": "/cms/taxonomy/create.html"
- }
- }
- },
- "contentbreadcrumb": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
- "depth": 2,
- "prefix": "/cms/taxonomy/list.html"
- },
- "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"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Actions"
- }
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "sling:Taxonomy":{
- "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/taxonomy/list.html"
- },
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/text",
- "property": "jcr:title"
- },
- "lastModified": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "subPath": ""
- },
- "actions": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "edit": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Edit Taxonomy Item",
- "icon": "pencil-f",
- "prefix": "/cms/taxonomy/edit.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Taxonomy Item",
- "icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Delete Taxonomy Item",
- "icon": "trash",
- "prefix": "/cms/shared/delete.html"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Taxonomy",
+ "jcr:primaryType": "nt:unstructured",
+ "container": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "contentactions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentactions",
+ "actions": {
+ "taxonomy": {
+ "jcr:primaryType": "nt:unstructured",
+ "label": "Taxonomy Item",
+ "prefix": "/cms/actions/create/taxonomy.html"
+ }
+ }
+ },
+ "contentbreadcrumb": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contentbreadcrumb",
+ "depth": 2,
+ "prefix": "/cms/taxonomy/list.html"
+ },
+ "contenttable": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/contenttable",
+ "depth":1,
+ "columns": {
+ "jcr:primaryType": "nt:unstructured",
+ "resourceTypes": [
+ "sling:Page",
+ "sling:Taxonomy",
+ "sling:File",
+ "sling:OrderedFolder",
+ "sling:Folder"
+ ],
+ "name": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "link": true,
+ "jcr:title": "Name",
+ "prefix": "/cms/taxonomy/list.html"
+ },
+ "jcr:title": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "jcr:title": "Title",
+ "property": "jcr:title"
+ },
+ "lastModified": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": ""
+ },
+ "actions": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions"
+
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json
deleted file mode 100644
index f5d4a73..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Template",
- "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>Create Template</h3>"
- },
- "slingform": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/templates/",
- "button": "Create Template",
- "successPrepend": "/libs/sling-cms/content/site/content.html",
- "fields": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "title": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:title",
- "required": true
- },
- "name": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Name",
- "name": ":name"
- },
- "nameParam": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": ":nameParam",
- "value": "jcr:title"
- },
- "primaryType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:primaryType",
- "value": "nt:unstructured"
- },
- "resourceType": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "sling:resourceType",
- "value": "sling-cms/components/cms/pagetemplate"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/edit.json
deleted file mode 100644
index c406ac7..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/edit.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Configure Site",
- "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": "<h2>Edit Template</h2>"
- },
- "siteconfig": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/templateeditor"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/global.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/global.jsp
index 8b34fcc..5dc580e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/global.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/global.jsp
@@ -20,4 +20,4 @@
%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%
%><%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><%
%><%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %><%
-%><sling:defineObjects /><sling:adaptTo var="properties" adaptable="${resource}" adaptTo="org.apache.sling.api.resource.ValueMap" />
\ No newline at end of file
+%><sling:defineObjects /><sling:adaptTo var="properties" adaptable="${resource}" adaptTo="org.apache.sling.api.resource.ValueMap" />