You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2019/12/19 21:09:47 UTC
[sling-org-apache-sling-app-cms] branch SLING-7900 created (now
f74e7cb)
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a change to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git.
at f74e7cb Merging in master
This branch includes the following new commits:
new 5d2c55a initial changes
new 5ca7ff2 initial refactoring of content breadcrumbs and content table
new 3e2496b table updates and modals
new 4d4651e SLING-7900 UI changes
new 14d282f SLING-7900 set core to java 8
new 7ac67c6 UI Updates - Content Browsing
new 5162054 removed additional '}'
new f0ffbd3 SLING-7900 UI dynamic file actions
new 3b977b1 SLING-7900 UI Updates
new 68b45fb side navigation
new 99b2d39 AEM-7900 side breadcrumb example working
new 2213872 ongoing breadcrumb changes
new 7415cce AEM-7900 updated package version
new 9dc63c1 Merge remote-tracking branch 'origin/master' into SLING-7900
new 4d532b2 Merge remote-tracking branch 'origin/master' into SLING-7900
new e0b2b83 AEM-7900 fixed corrupted start.json
new f74e7cb Merging in master
The 17 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[sling-org-apache-sling-app-cms] 13/17: AEM-7900 updated package
version
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 7415cce0db9372b511cdead5de417d1e593ff335
Author: JE Bailey <ja...@sas.com>
AuthorDate: Mon Sep 24 09:15:39 2018 -0400
AEM-7900 updated package version
---
core/src/main/java/org/apache/sling/cms/core/models/package-info.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 6579c9c..da2cdc7 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
@@ -22,7 +22,7 @@
*
* @version 0.9.0
*/
-@Version("1.0.0")
+@Version("1.1.0")
package org.apache.sling.cms.core.models;
import org.osgi.annotation.versioning.Version;
[sling-org-apache-sling-app-cms] 17/17: Merging in master
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit f74e7cb6e7e844335607cdfb0201edad92412d48
Merge: e0b2b83 e1374dd
Author: Dan Klco <dk...@apache.org>
AuthorDate: Thu Oct 4 12:38:23 2018 -0400
Merging in master
README.md | 6 +-
core/pom.xml | 23 +-
.../core/internal/filters/EditIncludeFilter.java | 15 +-
.../internal/operations/BulkReplaceOperation.java | 253 +++++++++++----------
.../apache/sling/cms/core/models/ErrorHandler.java | 195 ++++++++++++----
.../apache/sling/cms/core/models/package-info.java | 2 -
docs/admin-tools.md | 4 +-
docs/administration.md | 3 +-
docs/developers.md | 3 +-
docs/img/add-config.png | Bin 35261 -> 18883 bytes
docs/img/add-taxonomy.png | Bin 54030 -> 22675 bytes
docs/img/add-template.png | Bin 82285 -> 19221 bytes
docs/img/bulk-replace.png | Bin 55838 -> 36012 bytes
docs/img/component-configurations.png | Bin 56299 -> 38301 bytes
docs/img/component-editor.png | Bin 90386 -> 96528 bytes
docs/img/configuration-fields.png | Bin 28453 -> 16335 bytes
docs/img/configure-security-filter.png | Bin 77137 -> 48229 bytes
docs/img/container-add.png | Bin 91196 -> 37214 bytes
docs/img/content-packages.png | Bin 97449 -> 60455 bytes
docs/img/create-site-configuration.png | Bin 64338 -> 23424 bytes
docs/img/create-site-group.png | Bin 57275 -> 20512 bytes
docs/img/create-site.png | Bin 58038 -> 25812 bytes
docs/img/delete-dialog.png | Bin 72693 -> 53006 bytes
docs/img/edit-file-config.png | Bin 74938 -> 57158 bytes
docs/img/edit-site-configuration.png | Bin 112002 -> 56785 bytes
docs/img/edit-template.png | Bin 71898 -> 53255 bytes
docs/img/editor-topbar.png | Bin 135874 -> 113918 bytes
docs/img/internationalization.png | Bin 55605 -> 33725 bytes
docs/img/load-content.png | Bin 49462 -> 33793 bytes
docs/img/manage-versions.png | Bin 79397 -> 38901 bytes
docs/img/mappings.png | Bin 76531 -> 33685 bytes
docs/img/move-copy.png | Bin 70051 -> 53038 bytes
docs/img/node-browser.png | Bin 67381 -> 38589 bytes
docs/img/osgi-console.png | Bin 147524 -> 93708 bytes
docs/img/sample-console.png | Bin 67453 -> 29716 bytes
docs/img/select-config-component-type.png | Bin 48785 -> 33449 bytes
docs/img/select-field-type.png | Bin 47648 -> 28452 bytes
docs/img/site-content.png | Bin 78605 -> 34216 bytes
docs/img/ugc-approval.png | Bin 0 -> 61884 bytes
docs/img/ugc-console.png | Bin 0 -> 49303 bytes
docs/img/use-taxonomy.png | Bin 28360 -> 14997 bytes
docs/img/users-groups.png | Bin 54151 -> 31634 bytes
docs/intro.md | 17 +-
docs/quickstart.md | 6 +-
docs/releases.md | 54 +++++
docs/user-generated-content.md | 48 ++++
pom.xml | 25 +-
ui/src/main/frontend/gulpfile.js | 7 +-
ui/src/main/frontend/package.json | 7 +-
ui/src/main/frontend/src/js/cms.js | 52 +++--
ui/src/main/frontend/src/js/editor.js | 202 ++++++++--------
ui/src/main/frontend/src/scss/cms.scss | 9 +
.../components/cms/editconfig/editconfig.jsp | 4 +-
.../components/cms/searchresults/searchresults.jsp | 86 +++----
.../components/cms/suffixswitch/suffixswitch.jsp | 2 +-
.../components/editor/fields/path/path.jsp | 2 +-
.../components/editor/scripts/finalize.jsp | 2 +-
.../components/general/container/container.jsp | 2 +-
.../libs/sling-cms/components/pages/base/nav.jsp | 36 ++-
.../sling-cms/components/pages/editor/body.jsp | 2 +-
.../pages/editor/{body.jsp => editor.jsp} | 8 +-
.../libs/sling-cms/content/shared/search.json | 53 +++++
.../libs/sling/servlet/errorhandler/default.jsp | 3 +-
63 files changed, 734 insertions(+), 397 deletions(-)
diff --cc core/pom.xml
index 2b20be9,640e9f2..8362b93
--- a/core/pom.xml
+++ b/core/pom.xml
@@@ -186,13 -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>
diff --cc core/src/main/java/org/apache/sling/cms/core/models/package-info.java
index da2cdc7,a8c656b..1118341
--- 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
@@@ -19,10 -19,8 +19,8 @@@
/**
* Package with all of the core models used to support the Sling reference CMS
- *
- * @version 0.9.0
*/
-@Version("2.0.0")
+@Version("1.1.0")
package org.apache.sling.cms.core.models;
import org.osgi.annotation.versioning.Version;
diff --cc ui/src/main/frontend/src/js/cms.js
index 41cb831,3b2f306..730e823
--- a/ui/src/main/frontend/src/js/cms.js
+++ b/ui/src/main/frontend/src/js/cms.js
@@@ -19,554 -19,516 +19,566 @@@
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;
+ }
+ 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');
});
- 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;
+ });
+ 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'));
- });
- });
- }
- }
- };
+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;
- //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;
- });
+ // mouse button down over the element
+ element.addEventListener('mousedown', function(evt) {
- if (document.querySelector('.modal-card-body').contains(evt.target)) {
++ if (evt.target.matches('.modal-card-body *')) {
+ return;
}
- };
-
- 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;
- });
- }
- };
+ mouseX = evt.clientX;
+ mouseY = evt.clientY;
+ mouseDown = true;
+ });
- 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();
- });
- }
- };
+ var moveComplete = function() {
+ mouseDown = false;
+ elementX = parseInt(element.style.left) || 0;
+ elementY = parseInt(element.style.top) || 0;
+ 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);
- }
- }
+ element.addEventListener('mouseup', moveComplete);
+ document.addEventListener('mouseout', moveComplete);
- 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);
+ 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['handleugc'] = function(res, msg){
- Sling.CMS.ui.confirmMessage(msg, res.title,function(){
- window.location = '/cms/usergenerated/content.html'+res.parentLocation;
- });
+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['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['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() {
+ document.querySelectorAll('.navbar-burger').forEach(function(burger){
+ burger.addEventListener('click', function(){
+ var target = document.querySelector(burger.dataset.target);
+ target.classList.toggle('is-active');
+ burger.classList.toggle('is-active');
+ });
+ });
+ }
+ };
-
- 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) {
- var $btn = $(evt.target);
- var $active = Sling.CMS.ext['searchbutton'].active;
- $active.val($btn.data('path'));
- $btn.closest('.Modal').remove();
- });
- }
- }
+
- Sling.CMS.ext['searchbutton'] = {
- active : null,
- decorate : function($ctx) {
- $ctx.find('.Search-Button').click(
- function(evt) {
- Sling.CMS.ext['searchbutton'].active = $(evt.target).closest(
- '.Field-Input').find('.Field-Path');
- });
- }
+ Sling.CMS.ext['searchselect'] = {
+ decorate: function($ctx) {
+ $ctx.find('.search-select-button').click(function(evt){
+ var $btn = $(evt.target);
+ var $active = Sling.CMS.ext['searchbutton'].active;
+ $active.val($btn.data('path'));
+ $btn.closest('.modal').remove();
+ });
+ }
- };
++ }
+
+ Sling.CMS.ext['searchbutton'] = {
+ active: null,
+ decorate: function($ctx) {
+ $ctx.find('.search-button').click(function(evt){
+ 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')
- });
+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;
+ });
+ }
+}
- $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['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')
+ });
- 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');
- });
+ $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;
}
- };
-
- 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');
- }
- });
- })
+ $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;
+ });
+ }
+};
- $(document).ready(function() {
- Sling.CMS.init();
+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 --cc ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
index 2e6fd9e,da5e167..7dc39b8
--- 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,23 -17,21 +17,21 @@@
* 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"/>
- </a>
- <a href="/cms/start.html" class="navbar-item" title="CMS Home"><span class="icon"><i class="jam jam-home-f"></i></span></a>
- <div class="navbar-item">
- </div>
- <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
- <span aria-hidden="true"></span>
- <span aria-hidden="true"></span>
- <span aria-hidden="true"></span>
- </a>
- </div>
- <div class="navbar-menu">
- <div class="navbar-end">
- <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>
+ <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"/>
+ </a>
+ <a href="/cms/start.html" class="navbar-item" title="CMS Home"><span class="icon"><i class="jam jam-home-f"></i></span></a>
+ <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="#top-navbar-menu">
+ <span aria-hidden="true"></span>
+ <span aria-hidden="true"></span>
+ <span aria-hidden="true"></span>
+ </a>
+ </div>
+ <div class="navbar-menu" id="top-navbar-menu">
+ <div class="navbar-end">
+ <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>
++</nav>
[sling-org-apache-sling-app-cms] 14/17: Merge remote-tracking
branch 'origin/master' into SLING-7900
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 9dc63c13132996de55c74ec948e656a3700e547a
Merge: 7415cce fff2bcb
Author: JE Bailey <ja...@sas.com>
AuthorDate: Mon Oct 1 13:10:32 2018 -0400
Merge remote-tracking branch 'origin/master' into SLING-7900
Conflicts:
ui/src/main/frontend/src/js/cms.js
ui/src/main/resources/jcr_root/libs/sling-cms/content/start.json
.../usergenerated/impl/ApproveUGCOperation.java | 3 +
ui/src/main/frontend/src/js/cms.js | 1043 +++++++++++---------
.../components/cms/suffixswitch/suffixswitch.jsp | 45 +
.../components/editor/fields/path/path.jsp | 2 +-
.../components/editor/fields/select/field.jsp | 74 +-
.../editor/fields/siblingselect/siblingselect.jsp | 2 +-
.../libs/sling-cms/content/admin/bulkreplace.json | 145 +--
.../libs/sling-cms/content/admin/loadcontent.json | 198 +++-
.../jcr_root/libs/sling-cms/content/start.json | 14 +-
.../sling-cms/content/usergenerated/review.json | 2 +
10 files changed, 880 insertions(+), 648 deletions(-)
diff --cc ui/src/main/frontend/src/js/cms.js
index 72b9474,3d56576..41cb831
--- a/ui/src/main/frontend/src/js/cms.js
+++ b/ui/src/main/frontend/src/js/cms.js
@@@ -15,497 -15,508 +15,558 @@@
* 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);
- }
- }
- },
- 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;
- }
- });
- 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(document.querySelector('.modal-card-body').contains(evt.target)){
- 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['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['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['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['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){
- var $btn = $(evt.target);
- var $active = Sling.CMS.ext['searchbutton'].active;
- $active.val($btn.data('path'));
- $btn.closest('.Modal').remove();
- });
- }
- }
-
- Sling.CMS.ext['searchbutton'] = {
- active: null,
- decorate: function($ctx) {
- $ctx.find('.Search-Button').click(function(evt){
- Sling.CMS.ext['searchbutton'].active = $(evt.target).closest('.Field-Input').find('.Field-Path');
- });
- }
- }
-
- 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();
- });
- 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;
++ }
++ 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');
+ });
- 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;
++ });
++ 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(document.querySelector('.modal-card-body').contains(evt.target)){
- 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'));
- });
- });
- }
- }
- };
++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;
+
- //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['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;
- });
++ // mouse button down over the element
++ element.addEventListener('mousedown', function(evt) {
++ if (document.querySelector('.modal-card-body').contains(evt.target)) {
++ return;
+ }
- };
++ mouseX = evt.clientX;
++ mouseY = evt.clientY;
++ mouseDown = true;
++ });
+
- 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();
- });
- }
- };
++ var moveComplete = function() {
++ mouseDown = false;
++ elementX = parseInt(element.style.left) || 0;
++ elementY = parseInt(element.style.top) || 0;
++ 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);
- }
- }
++ element.addEventListener('mouseup', moveComplete);
++ document.addEventListener('mouseout', moveComplete);
+
- 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);
++ 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['handleugc'] = function(res, msg){
- Sling.CMS.ui.confirmMessage(msg, res.title,function(){
- window.location = '/cms/usergenerated/content.html'+res.parentLocation;
- });
++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['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['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());
- });
- });
- });
- }
- };
++// 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['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['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');
+
- 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){
- var $btn = $(evt.target);
- var $active = Sling.CMS.ext['searchbutton'].active;
- $active.val($btn.data('path'));
- $btn.closest('.Modal').remove();
- });
- }
- }
-
- Sling.CMS.ext['searchbutton'] = {
- active: null,
- decorate: function($ctx) {
- $ctx.find('.Search-Button').click(function(evt){
- Sling.CMS.ext['searchbutton'].active = $(evt.target).closest('.Field-Input').find('.Field-Path');
- });
- }
- }
++ $($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['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')
- });
++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');
+
- $ctx.find('table').each(function(){
- var sort = $(this).data('sort') !== 'false';
- var paginate = $(this).data('paginate') !== 'false';
- $(this).DataTable({
- sort: sort,
- paginate: paginate
- });
- });
- }
- };
++ 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['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['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['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) {
+ }
- };
-
- Sling.CMS.ext['toggle-hidden'] = {
- decorate: function($ctx){
- $ctx.find('.toggle-hidden').click(function(){
- $($(this).data('target')).toggleClass('is-hidden');
- });
++ if (term === '/') {
++ term = base;
+ }
- };
-
- 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');
- }
- });
- })
++ 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) {
++ var $btn = $(evt.target);
++ var $active = Sling.CMS.ext['searchbutton'].active;
++ $active.val($btn.data('path'));
++ $btn.closest('.Modal').remove();
++ });
++ }
++}
++
++Sling.CMS.ext['searchbutton'] = {
++ active : null,
++ decorate : function($ctx) {
++ $ctx.find('.Search-Button').click(
++ function(evt) {
++ Sling.CMS.ext['searchbutton'].active = $(evt.target).closest(
++ '.Field-Input').find('.Field-Path');
++ });
++ }
++}
++
++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;
+ }
- };
-
- 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);
- });
++ $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;
++ });
++ }
++};
+
- $(document).ready(function() {
- Sling.CMS.init();
++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 --cc ui/src/main/resources/jcr_root/libs/sling-cms/content/start.json
index fa03c4a,d8bce41..2e9aa72
--- 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
@@@ -58,6 -73,11 +58,13 @@@
"title": "Tools",
"links": {
"jcr:primaryType": "nt:unstructured",
++ "links": {
++ "jcr:primaryType": "nt:unstructured",
+ "bulkreplace": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/admin/bulkreplace.html",
+ "text": "Bulk Replace"
+ },
"contentpackages": {
"jcr:primaryType": "nt:unstructured",
"link": "/bin/packages.html",
[sling-org-apache-sling-app-cms] 15/17: Merge remote-tracking
branch 'origin/master' into SLING-7900
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 4d532b2777d9d9efdbf39edbf1704f8d1c66b61d
Merge: 9dc63c1 7fa94f7
Author: JE Bailey <ja...@sas.com>
AuthorDate: Mon Oct 1 13:15:26 2018 -0400
Merge remote-tracking branch 'origin/master' into SLING-7900
Conflicts:
ui/src/main/resources/jcr_root/conf/global.json
docs/configure-site.md | 6 +-
ui/src/main/resources/jcr_root/conf/global.json | 2 +-
.../components/editor/fields/repeating/field.jsp | 2 +-
.../components/editor/fields/taxonomy/field.jsp | 2 +-
.../components/editor/fields/well/well.jsp | 48 ++++++++
.../libs/sling-cms/content/admin/loadcontent.json | 137 +++++++++++----------
vagrant/Vagrantfile | 2 +-
7 files changed, 128 insertions(+), 71 deletions(-)
diff --cc ui/src/main/resources/jcr_root/conf/global.json
index 12f7383,c2ea9ad..1110ed2
--- a/ui/src/main/resources/jcr_root/conf/global.json
+++ b/ui/src/main/resources/jcr_root/conf/global.json
@@@ -1,139 -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/apache-sling-org.*"
++ "/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"
+ }
+ }
+ }
+ }
+ }
}
[sling-org-apache-sling-app-cms] 06/17: UI Updates - Content
Browsing
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 7ac67c636903c459ba69d9a0a1cb7b363f7469a7
Author: JE Bailey <ja...@sas.com>
AuthorDate: Thu Sep 13 10:30:08 2018 -0400
UI Updates - Content Browsing
Taxonomy & Config Updates
---
.../create.json => actions/create/config.json} | 23 +-
.../editgroup.json => actions/create/page.json} | 28 +--
.../create.json => actions/create/taxonomy.json} | 19 +-
.../create.json => actions/create/template.json} | 2 +-
.../libs/sling-cms/content/actions/edit/file.json | 40 ++--
.../sling-cms/content/actions/edit/folder.json | 66 +++---
.../libs/sling-cms/content/actions/edit/site.json | 2 +-
.../editgroup.json => actions/edit/sitegroup.json} | 2 +-
.../editgroup.json => actions/edit/taxonomy.json} | 19 +-
.../sling-cms/content/actions/edit/template.json | 21 ++
.../content/actions/optimize/optimize.json | 21 ++
.../content/{ => actions}/shared/delete.json | 0
.../content/{ => actions}/shared/movecopy.json | 0
.../content/{ => actions}/shared/publish.json | 0
.../content/{ => actions}/shared/search.json | 0
.../content/{ => actions}/shared/unpublish.json | 0
.../content/{ => actions}/shared/versions.json | 0
.../editgroup.json => actions/upload/file.json} | 32 +--
.../libs/sling-cms/content/config/create.json | 66 ------
.../libs/sling-cms/content/config/list.json | 243 +++++++--------------
.../jcr_root/libs/sling-cms/content/file/edit.json | 21 --
.../libs/sling-cms/content/file/optimize.json | 21 --
.../libs/sling-cms/content/file/upload.json | 34 ---
.../libs/sling-cms/content/folder/edit.json | 34 ---
.../libs/sling-cms/content/page/create.json | 38 ----
.../libs/sling-cms/content/site/content.json | 114 +++++-----
.../libs/sling-cms/content/site/create.json | 72 ------
.../libs/sling-cms/content/site/creategroup.json | 68 ------
.../jcr_root/libs/sling-cms/content/site/edit.json | 64 ------
.../libs/sling-cms/content/site/sites.json | 14 +-
.../libs/sling-cms/content/siteconfig/editor.json | 186 ++++++++--------
.../jcr_root/libs/sling-cms/content/start.json | 5 -
.../libs/sling-cms/content/static/content.json | 231 +++++---------------
.../libs/sling-cms/content/taxonomy/create.json | 52 -----
.../libs/sling-cms/content/taxonomy/edit.json | 33 ---
.../libs/sling-cms/content/taxonomy/list.json | 187 ++++++++--------
.../libs/sling-cms/content/template/edit.json | 21 --
.../sling-cms/content/templates/sitegroup.json | 5 -
38 files changed, 534 insertions(+), 1250 deletions(-)
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/actions/create/config.json
similarity index 73%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/create.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/config.json
index 8c04f36..2d1d7ff 100644
--- 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/actions/create/config.json
@@ -2,7 +2,7 @@
"jcr:primaryType": "sling:Page",
"jcr:content": {
"sling:resourceType": "sling-cms/components/pages/form",
- "jcr:title": "Create Folder",
+ "jcr:title": "Create Site Config",
"jcr:primaryType": "nt:unstructured",
"container": {
"jcr:primaryType": "nt:unstructured",
@@ -10,13 +10,13 @@
"richtext": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/richtext",
- "text": "<h3>Create Folder</h3>"
+ "text": "<h3>Create Site Config</h3>"
},
"slingform": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
"actionSuffix": "/*",
- "button": "Create Folder",
+ "button": "Create Site Config",
"successPrepend": "/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "nt:unstructured",
@@ -25,7 +25,7 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/fields/text",
"label": "Title",
- "name": "jcr:content/jcr:title",
+ "name": "jcr:title",
"required": true
},
"name": {
@@ -38,19 +38,26 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/fields/hidden",
"name": ":nameParam",
- "value": "jcr:content/jcr:title"
+ "value": "jcr:title"
},
"primaryType": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/fields/hidden",
"name": "jcr:primaryType",
- "value": "sling:OrderedFolder"
+ "value": "sling:Config"
},
- "contentPrimaryType": {
+ "pageTemplatesPrimaryType": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/fields/hidden",
- "name": "jcr:content/jcr:primaryType",
+ "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/site/editgroup.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/page.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/page.json
index 44c9b33..003f562 100644
--- 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/actions/create/page.json
@@ -1,8 +1,8 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Site Group",
+ "sling:resourceType": "sling-cms/components/pages/form",
+ "jcr:title": "Create Page",
"jcr:primaryType": "nt:unstructured",
"container": {
"jcr:primaryType": "nt:unstructured",
@@ -10,32 +10,26 @@
"richtext": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/richtext",
- "text": "<h3>Edit Site Group</h3>"
+ "text": "<h3>Create Page</h3>"
},
"slingform": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Folder",
+ "button": "Create Page",
"successPrepend": "/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
- "title": {
+ "pageTemplate": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:content/jcr:title",
- "required": true
+ "sling:resourceType": "sling-cms/components/editor/fields/select",
+ "label": "Page Template",
+ "name": "pageTemplate",
+ "optionsScript": "/libs/sling-cms/components/editor/scripts/pageTemplateOptions.jsp"
},
- "config": {
+ "pageproperties": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/path",
- "basePath": "/conf",
- "label": "Config",
- "name": "sling:configRef",
- "required": false,
- "type": "config"
+ "sling:resourceType": "sling-cms/components/cms/pageproperties"
}
}
}
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/actions/create/taxonomy.json
similarity index 73%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/folder/create.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/taxonomy.json
index 8c04f36..5bb6b4f 100644
--- 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/actions/create/taxonomy.json
@@ -2,7 +2,7 @@
"jcr:primaryType": "sling:Page",
"jcr:content": {
"sling:resourceType": "sling-cms/components/pages/form",
- "jcr:title": "Create Folder",
+ "jcr:title": "Create Taxonomy",
"jcr:primaryType": "nt:unstructured",
"container": {
"jcr:primaryType": "nt:unstructured",
@@ -10,14 +10,13 @@
"richtext": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/richtext",
- "text": "<h3>Create Folder</h3>"
+ "text": "<h3>Create Taxonomy</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",
+ "button": "Create Taxonomy",
"fields": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
@@ -25,7 +24,7 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/fields/text",
"label": "Title",
- "name": "jcr:content/jcr:title",
+ "name": "jcr:title",
"required": true
},
"name": {
@@ -38,19 +37,13 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/fields/hidden",
"name": ":nameParam",
- "value": "jcr:content/jcr:title"
+ "value": "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"
+ "value": "sling:Taxonomy"
}
}
}
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/actions/create/template.json
similarity index 97%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/template.json
index 9a96b51..9a33987 100644
--- 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/actions/create/template.json
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Create Template",
"jcr:primaryType": "nt:unstructured",
"container": {
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
index f11fdf7..c454066 100644
--- 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
@@ -1,21 +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"
- }
- }
- }
-}
\ No newline at end of file
+ "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
index b2092a5..bb2371b 100644
--- 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
@@ -1,34 +1,34 @@
{
- "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
+ "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",
+ "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
+ }
+ }
+ }
+ }
+ }
+}
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
index 319e9a5..e73af63 100644
--- 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
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Edit Site",
"jcr:primaryType": "nt:unstructured",
"container": {
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/actions/edit/sitegroup.json
similarity index 96%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/sitegroup.json
index 44c9b33..6c29d0f 100644
--- 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/actions/edit/sitegroup.json
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Edit Site Group",
"jcr:primaryType": "nt:unstructured",
"container": {
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/actions/edit/taxonomy.json
similarity index 61%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/taxonomy.json
index 44c9b33..2f46bd1 100644
--- 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/actions/edit/taxonomy.json
@@ -2,7 +2,7 @@
"jcr:primaryType": "sling:Page",
"jcr:content": {
"sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Site Group",
+ "jcr:title": "Edit Taxonomy Item",
"jcr:primaryType": "nt:unstructured",
"container": {
"jcr:primaryType": "nt:unstructured",
@@ -10,14 +10,12 @@
"richtext": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/richtext",
- "text": "<h3>Edit Site Group</h3>"
+ "text": "<h3>Edit Taxonomy Item</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",
+ "button": "Update Taxonomy",
"fields": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
@@ -25,17 +23,8 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/fields/text",
"label": "Title",
- "name": "jcr:content/jcr:title",
+ "name": "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/template.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/template.json
new file mode 100644
index 0000000..9ae587a
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/template.json
@@ -0,0 +1,21 @@
+{
+ "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",
+ "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"
+ }
+ }
+ }
+}
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..5c92acd
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/optimize/optimize.json
@@ -0,0 +1,21 @@
+{
+ "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"
+ }
+ }
+ }
+}
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/actions/shared/delete.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/delete.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/delete.json
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/actions/shared/movecopy.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/movecopy.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/movecopy.json
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/actions/shared/publish.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/publish.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/publish.json
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/search.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/search.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/search.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/search.json
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/actions/shared/unpublish.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/unpublish.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/unpublish.json
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/actions/shared/versions.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/shared/versions.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/shared/versions.json
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/actions/upload/file.json
similarity index 51%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json
rename to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/upload/file.json
index 44c9b33..2f0bdbb 100644
--- 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/actions/upload/file.json
@@ -1,41 +1,31 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Site Group",
+ "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",
- "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",
+ "button": "Upload File",
"fields": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
- "title": {
+ "file": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/text",
- "label": "Title",
- "name": "jcr:content/jcr:title",
+ "sling:resourceType": "sling-cms/components/editor/fields/file",
+ "label": "File",
+ "name": "*",
"required": true
},
- "config": {
+ "typeHint": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/editor/fields/path",
- "basePath": "/conf",
- "label": "Config",
- "name": "sling:configRef",
- "required": false,
- "type": "config"
+ "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/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/list.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/config/list.json
index 71e2a81..e71a744 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,86 @@
{
- "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/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",
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "jcr:title": "Name",
+ "prefix": "/cms/config/edit.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 f11fdf7..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/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"
- }
- }
- }
-}
\ 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 f8ae93f..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/upload.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "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"
- }
- }
- }
- }
- }
-}
\ 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/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/site/content.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
index 9383b5d..365848c 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,80 +1,86 @@
{
- "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": {
- "resourceTypes" : ["sling:Page","sling:File","sling:OrderedFolder","sling:Folder"],
+ "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"
+ }
+ }
+ },
+ "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": {
+ "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",
+ "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",
+ "jcr:title": "Title",
"type": "String"
},
"publish": {
"jcr:primaryType": "nt:unstructured",
- "jcr:title":"Publish",
+ "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",
+ "jcr:title": "Type",
"value": "Page"
},
"lastModified": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "jcr:title":"Last Modified",
+ "jcr:title": "Last Modified",
"subPath": "jcr:content/"
},
"actions": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/actions",
- "jcr:title":"Actions",
+ "jcr:title": "Actions",
"edit": {
"jcr:primaryType": "nt:unstructured",
"modal": false,
@@ -94,7 +100,7 @@
"modal": true,
"title": "Move / Copy Page",
"icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
+ "prefix": "/cms/actions/shared/movecopy.html"
},
"version": {
"jcr:primaryType": "nt:unstructured",
@@ -102,18 +108,18 @@
"modal": true,
"title": "Manage Versions",
"icon": "history",
- "prefix": "/cms/shared/versions.html"
+ "prefix": "/cms/actions/shared/versions.html"
},
"delete": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Delete the specified page",
"icon": "trash",
- "prefix": "/cms/shared/delete.html"
+ "prefix": "/cms/actions/shared/delete.html"
}
}
- }
- }
- }
- }
+ }
+ }
+ }
+ }
}
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 d2c64c9..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/create.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "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"
- }
- }
- }
- }
- }
-}
\ 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 353affa..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/form",
- "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/sites.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/sites.json
index 9c37266..628c6bc 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
@@ -39,15 +39,17 @@
"columns": {
"jcr:primaryType": "nt:unstructured",
"resourceTypes": [
- "sling:Site",
- "sling:OrderedFolder"
+ "sling:Page",
+ "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/site/sites.html"
+ "prefix": "/cms/site/content.html"
},
"title": {
"jcr:primaryType": "nt:unstructured",
@@ -71,20 +73,20 @@
"modal": true,
"title": "Edit Site Group",
"icon": "pencil-f",
- "prefix": "/cms/site/editgroup.html"
+ "prefix": "/cms/actions/edit/sitegroup.html"
},
"movecopy": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Move / Copy Site Group",
"icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
+ "prefix": "/cms/actions/shared/movecopy.html"
},
"delete": {
"jcr:primaryType": "nt:unstructured",
"title": "Delete Site Group",
"icon": "trash",
- "prefix": "/cms/shared/delete.html",
+ "prefix": "/cms/actions/shared/delete.html",
"modal": true
}
}
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..453c58f 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,94 @@
{
- "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",
+ "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"
+ }
+ }
+ }
+ }
+ }
+ }
+}
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 b4ec947..fa03c4a 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
@@ -40,11 +40,6 @@
"link": "/cms/taxonomy/list.html/etc/taxonomy",
"text": "Taxonomy"
},
- "templates": {
- "jcr:primaryType": "nt:unstructured",
- "link": "/cms/taxonomy/list.html/etc/taxonomy",
- "text": "Templates"
- },
"config": {
"jcr:primaryType": "nt:unstructured",
"link": "/cms/config/list.html/conf",
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 71a2c04..3c38b2f 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,45 +1,51 @@
{
- "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": {
- "resourceTypes":["sling:File","sling:OrderedFolder","sling:Folder","nt:file"],
- "jcr:primaryType": "nt:unstructured",
+ "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"
+ }
+ }
+ },
+ "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",
+ "defaultPath": "/content",
+ "columns": {
+ "resourceTypes": [
+ "sling:File",
+ "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",
+ "jcr:title": "Name",
"prefix": "/cms/static/content.html",
"link": true
},
@@ -47,36 +53,36 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/text",
"link": false,
- "jcr:title":"Title",
+ "jcr:title": "Title",
"type": "Name"
},
"publish": {
"jcr:primaryType": "nt:unstructured",
- "jcr:title":"Publish",
+ "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",
+ "jcr:title": "Type",
"value": "Folder"
},
"lastModified": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "jcr:title":"Last Modified",
+ "jcr:title": "Last Modified",
"subPath": "jcr:content/"
},
"actions": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/actions",
- "jcr:title":"Actions",
+ "jcr:title": "Actions",
"edit": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Edit File",
"icon": "pencil-f",
- "prefix": "/cms/file/edit.html"
+ "prefix": "/cms/actions/edit/file.html"
},
"optimize": {
"jcr:primaryType": "nt:unstructured",
@@ -96,7 +102,7 @@
"modal": true,
"title": "Move / Copy File",
"icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
+ "prefix": "/cms/actions/shared/movecopy.html"
},
"version": {
"jcr:primaryType": "nt:unstructured",
@@ -104,141 +110,18 @@
"modal": true,
"title": "Manage Versions",
"icon": "history",
- "prefix": "/cms/shared/versions.html"
+ "prefix": "/cms/actions/shared/versions.html"
},
"delete": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Delete File",
"icon": "trash",
- "prefix": "/cms/shared/delete.html"
+ "prefix": "/cms/actions/shared/delete.html"
}
}
- },
- "types": {
- "jcr:primaryType": "nt:unstructured",
- "sling:File":{
- "jcr:primaryType": "nt:unstructured",
- "columns": {
-
- }
- },
- "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"
- }
- }
- }
- }
- }
- }
- }
- }
+ }
+ }
+ }
+ }
}
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..0b69881 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,87 @@
{
- "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",
+ "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",
+ "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/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/content/templates/sitegroup.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/templates/sitegroup.json
deleted file mode 100644
index 8533f67..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/templates/sitegroup.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "jcr:contentType": "nt:unstructured",
- "sling:resourceType" : "cms/template"
-
-}
[sling-org-apache-sling-app-cms] 09/17: SLING-7900 UI Updates
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 3b977b1fd5325d74b2a021c8f11e9848caf89e91
Author: Jason E Bailey <je...@apache.org>
AuthorDate: Fri Sep 14 16:19:46 2018 -0400
SLING-7900 UI Updates
formatting updates
separated actions from views
testing breadcrumb/menu integration
---
core/pom.xml | 6 +
.../apache/sling/cms/core/models/BaseModel.java | 86 ++++++
.../{AvailableActions.java => Action.java} | 62 +++--
.../{AvailableActions.java => Actions.java} | 95 +++----
.../cms/core/models/components/Breadcrumbs.java | 40 +--
.../cms/core/models/components/ContentTable.java | 7 +-
.../models/components/column/LastModified.java | 63 +++++
.../cms/core/models/components/column/Name.java | 37 +++
ui/pom.xml | 2 +-
ui/src/main/resources/jcr_root/conf/global.json | 276 +++++++++----------
ui/src/main/resources/jcr_root/content.json | 7 -
.../content/sling-cms/errorhandling/401.json | 34 +--
.../content/sling-cms/errorhandling/403.json | 34 +--
.../content/sling-cms/errorhandling/404.json | 34 +--
.../content/sling-cms/errorhandling/default.json | 34 +--
.../jcr_root/libs/sling-cms/actions/nt%3Afile.json | 7 +-
.../{sling%3ASite.json => sling%3AConfig.json} | 10 +-
.../libs/sling-cms/actions/sling%3AFile.json | 7 +-
.../libs/sling-cms/actions/sling%3AFolder.json | 4 +-
.../libs/sling-cms/actions/sling%3AMapping.json | 1 +
.../sling-cms/actions/sling%3AOrderedFolder.json | 6 +-
.../libs/sling-cms/actions/sling%3APage.json | 3 +-
.../libs/sling-cms/actions/sling%3ASite.json | 4 +-
.../{sling%3AFolder.json => sling%3ATaxonomy.json} | 9 +-
.../name.jsp => breadcrumbmenu/breadcrumbmenu.jsp} | 24 +-
.../components/cms/breadcrumbmenu/edit.json | 31 +++
.../components/cms/columns/actions/actions.jsp | 35 +--
.../cms/columns/lastmodified/lastmodified.jsp | 10 +-
.../sling-cms/components/cms/columns/name/name.jsp | 5 +-
.../cms/contentactions/contentactions.jsp | 32 ++-
.../name/name.jsp => resource/action/action.jsp} | 22 +-
.../components/cms/staticnav/staticnav.jsp | 6 +-
.../libs/sling-cms/components/pages/base/nav.jsp | 1 -
.../sling-cms/content/actions/create/config.json | 5 -
.../content/actions/create/sitegroup.json | 129 +++++----
.../sling-cms/content/actions/create/taxonomy.json | 5 -
.../sling-cms/content/actions/create/template.json | 5 -
.../libs/sling-cms/content/actions/edit/site.json | 121 ++++----
.../sling-cms/content/actions/edit/sitegroup.json | 5 -
.../sling-cms/content/actions/edit/taxonomy.json | 2 +-
.../content/actions/optimize/optimize.json | 7 +-
.../libs/sling-cms/content/config/edit.json | 46 ++--
.../libs/sling-cms/content/config/list.json | 12 +-
.../libs/sling-cms/content/mappings/list.json | 304 ++++++++++-----------
.../libs/sling-cms/content/site/content.json | 11 +-
.../libs/sling-cms/content/site/sites.json | 21 +-
.../libs/sling-cms/content/siteconfig/editor.json | 71 ++---
.../libs/sling-cms/content/static/content.json | 9 +-
.../libs/sling-cms/content/taxonomy/list.json | 24 +-
49 files changed, 960 insertions(+), 851 deletions(-)
diff --git a/core/pom.xml b/core/pom.xml
index d936bb1..2b20be9 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -185,6 +185,12 @@
<artifactId>org.apache.sling.cms.api</artifactId>
<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>
</dependencies>
<properties>
<sling.java.version>8</sling.java.version>
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/AvailableActions.java b/core/src/main/java/org/apache/sling/cms/core/models/components/Action.java
similarity index 50%
copy from core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
copy to core/src/main/java/org/apache/sling/cms/core/models/components/Action.java
index 13e4770..bde08fe 100644
--- a/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/Action.java
@@ -16,37 +16,53 @@
*/
package org.apache.sling.cms.core.models.components;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
+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.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 AvailableActions {
+@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class Action extends BaseModel {
+
+ @Inject
+ boolean modal;
@Inject
- @Self
- SlingHttpServletRequest slingRequest;
-
- public List<Resource> getChildren() {
- System.out.println(slingRequest.getContextPath());
- System.out.println(slingRequest.getResource().getPath());
- String type = slingRequest.getResource().getValueMap().get("jcr:primaryType", "sling:File");
- System.out.println(type);
- Resource resource = slingRequest.getResourceResolver().resolve("/libs/sling-cms/actions/"+type);
-
- List<Resource> list = new ArrayList<>();
- resource.listChildren().forEachRemaining(list::add);
- System.out.println(list.toString());
- return list;
+ boolean target;
+
+ @PostConstruct
+ public void init() {
+ System.out.println("here");
+ }
+
+ 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/AvailableActions.java b/core/src/main/java/org/apache/sling/cms/core/models/components/Actions.java
similarity index 68%
rename from core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
rename to core/src/main/java/org/apache/sling/cms/core/models/components/Actions.java
index 13e4770..067c078 100644
--- a/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/Actions.java
@@ -1,52 +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.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import javax.inject.Inject;
-
-import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.resource.Resource;
-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 AvailableActions {
-
- @Inject
- @Self
- SlingHttpServletRequest slingRequest;
-
- public List<Resource> getChildren() {
- System.out.println(slingRequest.getContextPath());
- System.out.println(slingRequest.getResource().getPath());
- String type = slingRequest.getResource().getValueMap().get("jcr:primaryType", "sling:File");
- System.out.println(type);
- Resource resource = slingRequest.getResourceResolver().resolve("/libs/sling-cms/actions/"+type);
-
- List<Resource> list = new ArrayList<>();
- resource.listChildren().forEachRemaining(list::add);
- System.out.println(list.toString());
- return list;
- }
-
-}
+/*
+ * 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
index c4abe0c..d119638 100644
--- 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
@@ -25,11 +25,13 @@ 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.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;
import org.apache.sling.models.annotations.injectorspecific.Self;
+
/**
* Logic for the Suffix BreadCrumb Component
*
@@ -37,43 +39,34 @@ import org.apache.sling.models.annotations.injectorspecific.Self;
*
*/
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
-public class Breadcrumbs {
+public class Breadcrumbs extends BaseModel {
@Inject
@Via("resource")
- @Default(intValues=1)
+ @Default(intValues = 2)
int depth;
- @Inject
- Resource resource;
-
- @Inject
- @Via("resource")
- @Default(values="../..")
- String prefix;
@Inject
@Via("resource")
@Default(values = "jcr:title")
String titleProp;
- @Self
- SlingHttpServletRequest servletRequest;
-
Resource suffixResource;
List<PathData> pathData = new ArrayList<>();
@PostConstruct
public void postConstruct() {
- suffixResource = servletRequest.getRequestPathInfo().getSuffixResource();
+ suffixResource = slingRequest.getRequestPathInfo().getSuffixResource();
if (suffixResource == null) {
return;
}
+ String prefix = slingRequest.getPathInfo();
boolean first = true;
while (suffixResource.getParent() != null) {
String suffix = suffixResource.getPath();
- pathData.add(0, new PathData(prefix + suffix, getTitle(suffixResource),first));
+ pathData.add(0, new PathData(suffix, prefix + getTitle(suffixResource), first));
if (first) {
first = false;
}
@@ -85,22 +78,17 @@ public class Breadcrumbs {
}
private String getTitle(Resource resource) {
- ValueMap map = resource.getValueMap();
- String title = map.get("jcr:title", String.class);
+ String title = get("jcr:title", String.class);
if (title != null) {
return title;
}
- title = map.get("jcr:content/jcr:title", String.class);
+ title = get("jcr:content/jcr:title", String.class);
if (title != null) {
return title;
}
return resource.getName();
}
- public String getTitle() {
- return null;
- }
-
public List<PathData> getPathData() {
return pathData;
}
@@ -114,7 +102,7 @@ public class Breadcrumbs {
public PathData(String href, String title, boolean first) {
this.href = href;
this.title = title;
- this.first= first;
+ this.first = first;
}
public String getHref() {
@@ -126,21 +114,19 @@ public class Breadcrumbs {
public String getTitle() {
return title;
}
-
+
public String getAria() {
if (first) {
return "aria-current='page'";
}
return "";
}
-
+
public String getClassAttr() {
if (first) {
- return "class='is-active'";
+ return "class='has-background-grey-lighter'";
}
return "";
}
-
}
-
}
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
index cbd611e..fb72f28 100644
--- 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
@@ -27,14 +27,14 @@ 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.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;
-import org.apache.sling.models.annotations.injectorspecific.Self;
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
-public class ContentTable {
+public class ContentTable extends BaseModel {
@Inject
@Via("resource")
@@ -47,12 +47,9 @@ public class ContentTable {
private String[] types;
- @Self
- SlingHttpServletRequest slingRequest;
@PostConstruct
public void init() {
- Resource resource = slingRequest.getResource();
ValueMap data = resource.getChild("columns").getValueMap();
types = data.get("resourceTypes", new String[]{});
}
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/ui/pom.xml b/ui/pom.xml
index 4a031e4..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>
diff --git a/ui/src/main/resources/jcr_root/conf/global.json b/ui/src/main/resources/jcr_root/conf/global.json
index 37e62ed..12f7383 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/apache-sling-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"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
+ "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/apache-sling-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 0f29c12..0000000
--- a/ui/src/main/resources/jcr_root/content.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "jcr:primaryType": "sling:Folder",
- "allowedResourceTypes": [
- "sling:Site",
- "sling:OrderedFolder"
- ]
-}
\ 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/libs/sling-cms/actions/nt%3Afile.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/nt%3Afile.json
index fc1963a..4f42e3f 100644
--- 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
@@ -1,11 +1,11 @@
{
"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",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/edit/file.html"
},
"optimize": {
@@ -13,12 +13,14 @@
"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": {
@@ -26,6 +28,7 @@
"modal": true,
"title": "Move / Copy File",
"icon": "move-alt",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/shared/movecopy.html"
},
"version": {
@@ -34,6 +37,7 @@
"modal": true,
"title": "Manage Versions",
"icon": "history",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/shared/versions.html"
},
"delete": {
@@ -41,6 +45,7 @@
"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%3ASite.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AConfig.json
similarity index 69%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ASite.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AConfig.json
index 7a92041..14badd1 100644
--- 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%3AConfig.json
@@ -1,23 +1,23 @@
{
- "jcr:resourceType": "nt:unstructured",
+ "jcr:primaryType": "nt:unstructured",
"edit": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
- "title": "Edit Site",
+ "title": "Edit Site Config",
"icon": "pencil-f",
- "prefix": "/cms/action/edit/site.html"
+ "prefix": "/cms/config/metadata.html"
},
"movecopy": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
- "title": "Move / Copy Site",
+ "title": "Move / Copy Config",
"icon": "move-alt",
"prefix": "/cms/actions/shared/movecopy.html"
},
"delete": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
- "title": "Delete the specified site",
+ "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
index fc1963a..4f42e3f 100644
--- 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
@@ -1,11 +1,11 @@
{
"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",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/edit/file.html"
},
"optimize": {
@@ -13,12 +13,14 @@
"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": {
@@ -26,6 +28,7 @@
"modal": true,
"title": "Move / Copy File",
"icon": "move-alt",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/shared/movecopy.html"
},
"version": {
@@ -34,6 +37,7 @@
"modal": true,
"title": "Manage Versions",
"icon": "history",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/shared/versions.html"
},
"delete": {
@@ -41,6 +45,7 @@
"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
index f437acb..9067adc 100644
--- 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
@@ -1,11 +1,11 @@
{
"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",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/edit/folder.html"
},
"movecopy": {
@@ -13,6 +13,7 @@
"modal": true,
"title": "Move / Copy Folder",
"icon": "move-alt",
+ "sling:resourceType": "sling-cms/components/cms/resource/action",
"prefix": "/cms/actions/shared/movecopy.html"
},
"delete": {
@@ -20,6 +21,7 @@
"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
index 6a91288..b6f64a9 100644
--- 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
@@ -1,11 +1,11 @@
{
- "jcr:primartyType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "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": {
@@ -13,12 +13,14 @@
"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
index 356523e..369b7e5 100644
--- 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
@@ -1,4 +1,5 @@
{
+ "jcr:primaryType": "nt:unstructured",
"edit": {
"jcr:primaryType": "nt:unstructured",
"modal": false,
@@ -31,7 +32,7 @@
"delete": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
- "title": "Delete the specified page",
+ "title": "Delete Page",
"icon": "trash",
"prefix": "/cms/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
index 7a92041..154e16a 100644
--- 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
@@ -1,11 +1,11 @@
{
- "jcr:resourceType": "nt:unstructured",
+ "jcr:primaryType": "nt:unstructured",
"edit": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Edit Site",
"icon": "pencil-f",
- "prefix": "/cms/action/edit/site.html"
+ "prefix": "/cms/actions/edit/site.html"
},
"movecopy": {
"jcr:primaryType": "nt:unstructured",
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%3ATaxonomy.json
similarity index 69%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFolder.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ATaxonomy.json
index f437acb..af5eec7 100644
--- 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%3ATaxonomy.json
@@ -1,24 +1,23 @@
{
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
"edit": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
- "title": "Edit Folder",
+ "jcr:title": "Edit Taxonomy Item",
"icon": "pencil-f",
- "prefix": "/cms/actions/edit/folder.html"
+ "prefix": "/cms/actions/edit/taxonomy.html"
},
"movecopy": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
- "title": "Move / Copy Folder",
+ "jcr:title": "Move / Copy Taxonomy Item",
"icon": "move-alt",
"prefix": "/cms/actions/shared/movecopy.html"
},
"delete": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
- "title": "Delete Folder",
+ "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/columns/name/name.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/breadcrumbmenu.jsp
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/name/name.jsp
copy to ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/breadcrumbmenu/breadcrumbmenu.jsp
index 5455d56..309308c 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/breadcrumbmenu/breadcrumbmenu.jsp
@@ -16,16 +16,16 @@
* specific language governing permissions and limitations
* under the License.
*/ --%>
+<%@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"%>
-<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-link"></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
+<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 116cea6..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,29 +17,12 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<td class="is-hidden cell-actions">
-<sling:adaptTo adaptable="${slingRequest}"
- adaptTo="org.apache.sling.cms.core.models.components.AvailableActions" var="model" />
-<c:forEach var="child" items="${model.children}">
- <c:choose>
- <c:when test="${child.valueMap.modal}">
- <a class="button Fetch-Modal"
- data-title="${sling:encode(child.valueMap.title,'HTML_ATTR')}"
- data-path="${child.valueMap.ajaxPath != null ? actionConfig.valueMap.ajaxPath : '.Main-Content form'}"
- href="${child.valueMap.prefix}${resource.path}"
- title="${sling:encode(child.valueMap.title,'HTML_ATTR')}">
- <span class="jam jam-${child.valueMap.icon}">
- </span>
- </a>
- </c:when>
- <c:otherwise>
- <a class="button"
- ${child.valueMap.new != false ? 'target="_blank"' : ''}
- href="${child.valueMap.prefix}${resource.path}"
- title="${sling:encode(child.valueMap.title,'HTML_ATTR')}">
- <span class="jam jam-${child.valueMap.icon}">
- </span>
- </a>
- </c:otherwise>
- </c:choose>
- </c:forEach></td>
\ No newline at end of file
+<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 5455d56..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,11 +17,14 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
+<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-link"></i></span>
+ <span class="icon"><i class="jam jam-${model.icon}"></i></span>
<sling:encode value="${colValue}" mode="HTML" />
</a>
</c:when>
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/columns/name/name.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/resource/action/action.jsp
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/name/name.jsp
copy to ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/resource/action/action.jsp
index 5455d56..1bea8b5 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/resource/action/action.jsp
@@ -17,15 +17,13 @@
* 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 class="has-text-primary"
- href="${colConfig.valueMap.prefix}${resource.path}">
- <span class="icon"><i class="jam jam-link"></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
+<!-- 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/pages/base/nav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
index e8ee431..2a6c5c5 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
@@ -24,7 +24,6 @@
</a>
<a href="/cms/start.html" class="navbar-item" title="CMS Home"><span class="icon"><i class="jam jam-home-f"></i></span></a>
<div class="navbar-item">
-<sling:include path="breadcrumb" resourceType="sling-cms/components/cms/contentbreadcrumb" />
</div>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
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
index e08e63d..ae5f047 100644
--- 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
@@ -7,11 +7,6 @@
"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",
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
index 353affa..936d88a 100644
--- 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
@@ -1,68 +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",
- "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
+ "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
index 5bb6b4f..49aabca 100644
--- 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
@@ -7,11 +7,6 @@
"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",
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
index 9a33987..d18f3d3 100644
--- 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
@@ -7,11 +7,6 @@
"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",
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
index ec528b8..e62680d 100644
--- 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
@@ -1,64 +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",
- "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": "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"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
+ "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
index 93063f6..d61c3d2 100644
--- 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
@@ -7,11 +7,6 @@
"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",
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
index f664ab9..59e3b47 100644
--- 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
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Edit Taxonomy Item",
"jcr:primaryType": "nt:unstructured",
"container": {
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
index 5c92acd..eded2e9 100644
--- 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
@@ -1,17 +1,12 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "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",
- "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"
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 bd7dda8..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
@@ -14,12 +14,12 @@
"folder": {
"jcr:primaryType": "nt:unstructured",
"label": "Folder",
- "prefix": "/cms/folder/create.html"
+ "prefix": "/cms/actions/create/folder.html"
},
"config": {
"jcr:primaryType": "nt:unstructured",
"label": "Config",
- "prefix": "/cms/config/create.html"
+ "prefix": "/cms/actions/create/config.html"
}
}
},
@@ -34,11 +34,17 @@
"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/edit.html",
+ "prefix": "/cms/config/list.html",
"link": true
},
"title": {
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/site/content.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
index d882436..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
@@ -28,13 +28,6 @@
}
}
},
- "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",
@@ -76,6 +69,10 @@
"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/sites.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/sites.json
index 85b1f8e..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
@@ -25,13 +25,6 @@
}
}
},
- "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",
@@ -39,17 +32,18 @@
"columns": {
"jcr:primaryType": "nt:unstructured",
"resourceTypes": [
- "sling:Page",
- "sling:File",
+ "sling:Site",
"sling:OrderedFolder",
- "sling:Folder"
+ "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/content.html"
+ "prefix": "/cms/site/sites.html"
},
"title": {
"jcr:primaryType": "nt:unstructured",
@@ -63,6 +57,11 @@
"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 453c58f..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
@@ -23,71 +23,34 @@
"appendSuffix": "/templates",
"columns": {
"jcr:primaryType": "nt:unstructured",
+ "resourceTypes": [
+ "sling:OrderedFolder",
+ "sling:Folder",
+ "sling:Conf",
+ "nt:file"
+ ],
"name": {
"jcr:primaryType": "nt:unstructured",
- "title": "Name"
+ "sling:resourceType": "sling-cms/components/cms/columns/name",
+ "jcr:title": "Name",
+ "link": false
},
"title": {
"jcr:primaryType": "nt:unstructured",
- "title": "Title"
+ "sling:resourceType": "sling-cms/components/cms/columns/text",
+ "jcr:title": "Title",
+ "property": "jcr:title"
},
"lastModified": {
"jcr:primaryType": "nt:unstructured",
- "title": "Last Modified"
+ "sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
+ "jcr:title": "Last Modified",
+ "subPath": ""
},
"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"
- }
- }
- }
+ "jcr:title": "Actions",
+ "sling:resourceType": "sling-cms/components/cms/columns/actions"
}
}
}
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 3c38b2f..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
@@ -23,20 +23,13 @@
}
}
},
- "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",
"defaultPath": "/content",
"columns": {
"resourceTypes": [
- "sling:File",
+ "sling:Conf",
"sling:OrderedFolder",
"sling:Folder",
"nt: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 0b69881..147c40b 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
@@ -57,28 +57,8 @@
},
"actions": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions",
- "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"
- }
+ "sling:resourceType": "sling-cms/components/cms/columns/actions"
+
}
}
}
[sling-org-apache-sling-app-cms] 11/17: AEM-7900 side breadcrumb
example working
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 99b2d39727c93897732bc0c6bbbb63d91aca4535
Author: JE Bailey <ja...@sas.com>
AuthorDate: Mon Sep 17 13:28:12 2018 -0400
AEM-7900 side breadcrumb example working
---
.../java/org/apache/sling/cms/core/models/components/Breadcrumbs.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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
index 0d2f8fa..71b7075 100644
--- 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
@@ -25,7 +25,6 @@ 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.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;
@@ -63,10 +62,11 @@ public class Breadcrumbs {
@PostConstruct
public void postConstruct() {
suffixResource = slingRequest.getRequestPathInfo().getSuffixResource();
+ String prefix = slingRequest.getRequestURI();
+ prefix = prefix.split(suffixResource.getPath())[0];
if (suffixResource == null) {
return;
}
- String prefix = slingRequest.getPathInfo();
boolean first = true;
while (suffixResource.getParent() != null) {
String suffix = suffixResource.getPath();
[sling-org-apache-sling-app-cms] 07/17: removed additional '}'
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 51620544b62e332f22a3003f1a14bcaa977f5718
Author: Jason E Bailey <je...@apache.org>
AuthorDate: Thu Sep 13 14:54:14 2018 -0400
removed additional '}'
---
ui/src/main/resources/jcr_root/libs/sling-cms/content/config/list.json | 1 -
1 file changed, 1 deletion(-)
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 e71a744..bd7dda8 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
@@ -83,4 +83,3 @@
}
}
}
-}
[sling-org-apache-sling-app-cms] 12/17: ongoing breadcrumb changes
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 2213872beaf214a21ba111761a8d8613ead07e03
Author: JE Bailey <ja...@sas.com>
AuthorDate: Fri Sep 21 14:02:20 2018 -0400
ongoing breadcrumb changes
---
.../sling/cms/core/models/components/Action.java | 6 --
.../cms/core/models/components/Breadcrumbs.java | 33 +++++++----
.../cms/core/models/components/ContentAction.java | 67 +++++++++-------------
.../cms/core/models/components/ContentTable.java | 26 +++------
ui/src/main/frontend/src/scss/_overrides.scss | 1 +
ui/src/main/resources/jcr_root/conf/cms.json | 2 +
.../jcr_root/etc/taxonomy/jcr%3Acontent.json | 1 +
.../libs/sling-cms/actions/sling%3APage.json | 6 +-
.../cms/breadcrumbmenu/breadcrumbmenu.jsp | 1 -
.../libs/sling-cms/components/pages/base/body.jsp | 25 ++++----
.../libs/sling-cms/components/pages/base/nav.jsp | 2 +-
.../{taxonomy/list.json => browse/browse.json} | 43 +++++++-------
.../jcr_root/libs/sling-cms/content/page/edit.json | 6 +-
.../sling-cms/content/page/siteeditproperties.json | 2 +-
.../libs/sling-cms/content/taxonomy/list.json | 1 +
15 files changed, 102 insertions(+), 120 deletions(-)
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
index bde08fe..a7a98cd 100644
--- 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
@@ -16,7 +16,6 @@
*/
package org.apache.sling.cms.core.models.components;
-import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.apache.sling.api.resource.Resource;
@@ -33,11 +32,6 @@ public class Action extends BaseModel {
@Inject
boolean target;
- @PostConstruct
- public void init() {
- System.out.println("here");
- }
-
public String getClasses() {
String response = "button";
if (modal) {
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
index 71b7075..aab750c 100644
--- 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
@@ -21,15 +21,17 @@ 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;
-import org.apache.sling.models.annotations.injectorspecific.Self;
/**
* Logic for the Suffix BreadCrumb Component
@@ -38,22 +40,13 @@ import org.apache.sling.models.annotations.injectorspecific.Self;
*
*/
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
-public class Breadcrumbs {
-
- @Inject
- @Via("resource")
- @Default(intValues = 2)
- int depth;
+public class Breadcrumbs extends BaseModel {
@Inject
@Via("resource")
@Default(values = "jcr:title")
String titleProp;
-
- @Inject
- @Self
- public SlingHttpServletRequest slingRequest;
Resource suffixResource;
@@ -63,10 +56,25 @@ public class Breadcrumbs {
public void postConstruct() {
suffixResource = slingRequest.getRequestPathInfo().getSuffixResource();
String prefix = slingRequest.getRequestURI();
- prefix = prefix.split(suffixResource.getPath())[0];
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();
@@ -76,6 +84,7 @@ public class Breadcrumbs {
}
suffixResource = suffixResource.getParent();
}
+ int depth = get("depth",2);
while (--depth > 0) {
pathData.remove(0);
}
diff --git a/ui/src/main/frontend/src/scss/_overrides.scss b/core/src/main/java/org/apache/sling/cms/core/models/components/ContentAction.java
similarity index 64%
copy from ui/src/main/frontend/src/scss/_overrides.scss
copy to core/src/main/java/org/apache/sling/cms/core/models/components/ContentAction.java
index 3d718fa..f1a9aba 100644
--- a/ui/src/main/frontend/src/scss/_overrides.scss
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/ContentAction.java
@@ -1,41 +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.
- */
-
-
-
-@charset "utf-8";
-
-// Brand Colors
-$indigo: #282661;
-$violet: #662F8F;
-$magenta: #9E2165;
-$crimson: #CB2138;
-$orange: #EA7826;
-$goldenrod: #F79A25;
-$gray: #6D6E71;
-$gray-light: lighten($gray, 50%);
-$red: #D22128;
-
-// Bulma default style overrides
-$family-sans-serif: "Open Sans",sans-serif;
-$link: $indigo;
-$primary: $magenta;
-$warning: $orange;
-$danger: $crimson;
-$navbar-height: 5rem;
-$navbar-item-img-max-height: 4rem;
-$modal-z: 2000;
\ No newline at end of file
+/*
+ * 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
index fb72f28..95aaecb 100644
--- 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
@@ -21,12 +21,10 @@ import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
-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.cms.core.models.BaseModel;
import org.apache.sling.models.annotations.Default;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
@@ -39,23 +37,15 @@ public class ContentTable extends BaseModel {
@Inject
@Via("resource")
private List<Resource> columns;
-
+
@Inject
@Via("resource")
- @Default(values="/")
+ @Default(values = "/")
private String defaultPath;
- private String[] types;
-
- @PostConstruct
- public void init() {
- ValueMap data = resource.getChild("columns").getValueMap();
- types = data.get("resourceTypes", new String[]{});
- }
-
public List<ColumnData> getColumnData() {
- return columns.stream().map(ColumnData::new).filter(ColumnData::isEligible).collect(Collectors.toList());
+ return columns.stream().map(ColumnData::new).collect(Collectors.toList());
}
public List<ChildResourceData> getChildren() {
@@ -68,10 +58,8 @@ public class ContentTable extends BaseModel {
}
List<ChildResourceData> response = new ArrayList<>();
suffix.listChildren().forEachRemaining(child -> {
- for (String type:types) {
- if (child.getResourceType().equals(type)) {
- response.add(new ChildResourceData(child));
- }
+ if (!child.getName().contains(":")) {
+ response.add(new ChildResourceData(child));
}
});
return response;
@@ -86,7 +74,7 @@ public class ContentTable extends BaseModel {
public ColumnData(Resource resource) {
this.resource = resource;
this.name = resource.getName();
-
+
}
public String getClassString() {
@@ -113,7 +101,7 @@ public class ContentTable extends BaseModel {
public String getFieldResourceType() {
return resource.getValueMap().get("sling:resourceType", "foo");
}
-
+
public Resource getResource() {
return resource;
}
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 @@ $warning: $orange;
$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/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/sling%3APage.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3APage.json
index 369b7e5..140ed09 100644
--- 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
@@ -19,7 +19,7 @@
"modal": true,
"title": "Move / Copy Page",
"icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
+ "prefix": "/cms/actions/shared/movecopy.html"
},
"version": {
"jcr:primaryType": "nt:unstructured",
@@ -27,13 +27,13 @@
"modal": true,
"title": "Manage Versions",
"icon": "history",
- "prefix": "/cms/shared/versions.html"
+ "prefix": "/cms/actions/shared/versions.html"
},
"delete": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Delete Page",
"icon": "trash",
- "prefix": "/cms/shared/delete.html"
+ "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
index 309308c..5fa4515 100644
--- 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
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/ --%>
-<%@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"/>
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 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 class="column">
- <main class="Main-Content">
- <sling:call script="content.jsp" />
- </main>
</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 2a6c5c5..2e6fd9e 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"/>
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/browse/browse.json
similarity index 67%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/taxonomy/list.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/browse/browse.json
index 147c40b..0129958 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/browse/browse.json
@@ -2,7 +2,7 @@
"jcr:primaryType": "sling:Page",
"jcr:content": {
"sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Taxonomy",
+ "jcr:title": "Site Content",
"jcr:primaryType": "nt:unstructured",
"container": {
"jcr:primaryType": "nt:unstructured",
@@ -11,54 +11,57 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/contentactions",
"actions": {
- "taxonomy": {
+ "page": {
"jcr:primaryType": "nt:unstructured",
- "label": "Taxonomy Item",
- "prefix": "/cms/actions/create/taxonomy.html"
+ "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"
}
}
},
- "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",
+ "defaultPath": "/content",
"columns": {
"jcr:primaryType": "nt:unstructured",
"resourceTypes": [
- "sling:Page",
- "sling:Taxonomy",
- "sling:File",
+ "sling:Site",
"sling:OrderedFolder",
- "sling:Folder"
+ "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/taxonomy/list.html"
+ "prefix": "/cms/site/sites.html"
},
- "jcr:title": {
+ "title": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/text",
+ "property": "jcr:content/jcr:title",
"jcr:title": "Title",
- "property": "jcr:title"
+ "type": "String"
},
"lastModified": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
"jcr:title": "Last Modified",
- "subPath": ""
+ "subPath": "jcr:content/"
},
"actions": {
"jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/columns/actions"
-
+ "sling:resourceType": "sling-cms/components/cms/columns/actions",
+ "jcr:title": "Actions"
}
}
}
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 63b8a90..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
@@ -27,21 +27,21 @@
"modal": true,
"title": "Manage Versions",
"icon": "history",
- "prefix": "/cms/shared/versions.html"
+ "prefix": "/cms/actions/shared/versions.html"
},
"movecopy": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Move / Copy Page",
"icon": "move-alt",
- "prefix": "/cms/shared/movecopy.html"
+ "prefix": "/cms/actions/shared/movecopy.html"
},
"delete": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
"title": "Delete Page",
"icon": "trash",
- "prefix": "/cms/shared/delete.html"
+ "prefix": "/cms/actions/shared/delete.html"
}
}
},
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 8b23187..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,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Edit Page",
"jcr:primaryType": "nt:unstructured",
"container": {
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 147c40b..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
@@ -27,6 +27,7 @@
"contenttable": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/contenttable",
+ "depth":1,
"columns": {
"jcr:primaryType": "nt:unstructured",
"resourceTypes": [
[sling-org-apache-sling-app-cms] 04/17: SLING-7900 UI changes
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 4d4651e15b6797c3548227a89979ae596e1cd75d
Author: JE Bailey <ja...@sas.com>
AuthorDate: Wed Sep 12 16:20:36 2018 -0400
SLING-7900 UI changes
* new 'form' page component used to return the minimalist content for a
modal
* Modal dialogs now have submit and cancel buttons at the bottom
* suffix breadcrumb is updated
* re structured the left panel to remove inline actions
* re structuring available actions internally
---
.../core/models/components/AvailableActions.java | 21 +++
.../cms/core/models/components/Breadcrumbs.java | 9 +-
.../cms/core/models/components/ContentTable.java | 11 +-
.../sling/cms/core/models/components/SiteNav.java | 26 +++
ui/src/main/frontend/src/js/cms.js | 4 +-
ui/src/main/resources/jcr_root/content.json | 6 +-
.../components/cms/contentnav/contentnav.jsp | 32 +---
.../libs/sling-cms/components/pages/base/nav.jsp | 3 +
.../libs/sling-cms/components/pages/form.json | 4 +
.../libs/sling-cms/components/pages/form/form.jsp | 20 ++
.../sling-cms/content/actions/create/folder.json | 59 ++++++
.../{site/create.json => actions/create/site.json} | 7 +-
.../create/sitegroup.json} | 2 +-
.../{file/edit.json => actions/edit/file.json} | 2 +-
.../editgroup.json => actions/edit/folder.json} | 16 +-
.../{site/create.json => actions/edit/site.json} | 29 +--
.../jcr_root/libs/sling-cms/content/file/edit.json | 2 +-
.../libs/sling-cms/content/file/upload.json | 7 +-
.../libs/sling-cms/content/folder/create.json | 116 ++++++------
.../libs/sling-cms/content/site/create.json | 7 +-
.../libs/sling-cms/content/site/creategroup.json | 2 +-
.../libs/sling-cms/content/site/editgroup.json | 86 ++++-----
.../libs/sling-cms/content/site/sites.json | 98 +++++-----
.../jcr_root/libs/sling-cms/content/start.json | 208 ++++++++++-----------
.../libs/sling-cms/content/template/create.json | 116 ++++++------
.../sling-cms/content/templates/sitegroup.json | 5 +
26 files changed, 491 insertions(+), 407 deletions(-)
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java b/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
new file mode 100644
index 0000000..767cb6f
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
@@ -0,0 +1,21 @@
+/*
+ * 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;
+
+public class AvailableActions {
+
+}
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
index a856490..c4abe0c 100644
--- 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
@@ -30,12 +30,18 @@ import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.Via;
import org.apache.sling.models.annotations.injectorspecific.Self;
-
+/**
+ * Logic for the Suffix BreadCrumb Component
+ *
+ *
+ *
+ */
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class Breadcrumbs {
@Inject
@Via("resource")
+ @Default(intValues=1)
int depth;
@Inject
@@ -43,6 +49,7 @@ public class Breadcrumbs {
@Inject
@Via("resource")
+ @Default(values="../..")
String prefix;
@Inject
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
index 21ed513..cbd611e 100644
--- 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
@@ -27,6 +27,7 @@ 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.Default;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.Via;
@@ -38,6 +39,11 @@ public class ContentTable {
@Inject
@Via("resource")
private List<Resource> columns;
+
+ @Inject
+ @Via("resource")
+ @Default(values="/")
+ private String defaultPath;
private String[] types;
@@ -58,7 +64,10 @@ public class ContentTable {
public List<ChildResourceData> getChildren() {
Resource suffix = slingRequest.getRequestPathInfo().getSuffixResource();
if (suffix == null) {
- return Collections.emptyList();
+ suffix = slingRequest.getResourceResolver().getResource(defaultPath);
+ if (suffix == null) {
+ return Collections.emptyList();
+ }
}
List<ChildResourceData> response = new ArrayList<>();
suffix.listChildren().forEachRemaining(child -> {
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/ui/src/main/frontend/src/js/cms.js b/ui/src/main/frontend/src/js/cms.js
index d53ed3d..72b9474 100644
--- a/ui/src/main/frontend/src/js/cms.js
+++ b/ui/src/main/frontend/src/js/cms.js
@@ -50,9 +50,9 @@ Sling.CMS = {
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-warning button" aria-label="close">Cancel</a></footer></div>');
+ 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 + " " +path,function(){
+ $modal.find('.modal-card-body').load(link,function(){
var submitButton = $modal.find('button:submit');
var closeButton = $modal.find('.close-modal');
submitButton.insertBefore(closeButton);
diff --git a/ui/src/main/resources/jcr_root/content.json b/ui/src/main/resources/jcr_root/content.json
index e064ab5..0f29c12 100644
--- a/ui/src/main/resources/jcr_root/content.json
+++ b/ui/src/main/resources/jcr_root/content.json
@@ -1,3 +1,7 @@
{
- "jcr:primaryType": "sling:Folder"
+ "jcr:primaryType": "sling:Folder",
+ "allowedResourceTypes": [
+ "sling:Site",
+ "sling:OrderedFolder"
+ ]
}
\ 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/pages/base/nav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
index 36aefb8..e8ee431 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
@@ -23,6 +23,9 @@
<img src="/static/clientlibs/sling-cms/img/sling-logo.svg" width="100" alt="Apache Sling"/>
</a>
<a href="/cms/start.html" class="navbar-item" title="CMS Home"><span class="icon"><i class="jam jam-home-f"></i></span></a>
+<div class="navbar-item">
+<sling:include path="breadcrumb" resourceType="sling-cms/components/cms/contentbreadcrumb" />
+</div>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
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/folder.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/folder.json
new file mode 100644
index 0000000..8c04f36
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/folder.json
@@ -0,0 +1,59 @@
+{
+ "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",
+ "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"
+ }
+ }
+ }
+ }
+ }
+}
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/actions/create/site.json
similarity index 90%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/create.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/site.json
index 5d6c0e9..d2c64c9 100644
--- 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/actions/create/site.json
@@ -1,17 +1,12 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "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",
- "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",
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/actions/create/sitegroup.json
similarity index 97%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/creategroup.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/create/sitegroup.json
index 9b434ac..353affa 100644
--- 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/actions/create/sitegroup.json
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Create Folder",
"jcr:primaryType": "nt:unstructured",
"container": {
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/actions/edit/file.json
similarity index 90%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/file/edit.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/file.json
index 6887601..f11fdf7 100644
--- 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/actions/edit/file.json
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Edit File",
"jcr:primaryType": "nt:unstructured",
"container": {
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/actions/edit/folder.json
similarity index 70%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/editgroup.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/folder.json
index a508fc6..b2092a5 100644
--- 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/actions/edit/folder.json
@@ -2,7 +2,7 @@
"jcr:primaryType": "sling:Page",
"jcr:content": {
"sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Edit Site Group",
+ "jcr:title": "Edit Folder",
"jcr:primaryType": "nt:unstructured",
"container": {
"jcr:primaryType": "nt:unstructured",
@@ -10,13 +10,12 @@
"richtext": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/richtext",
- "text": "<h3>Edit Site Group</h3>"
+ "text": "<h3>Edit Folder</h3>"
},
"slingform": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Folder",
+ "button": "Edit Folder",
"successPrepend":"/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "nt:unstructured",
@@ -27,15 +26,6 @@
"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/site/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/site.json
similarity index 73%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/content/site/create.json
copy to ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/site.json
index 5d6c0e9..319e9a5 100644
--- 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/actions/edit/site.json
@@ -2,7 +2,7 @@
"jcr:primaryType": "sling:Page",
"jcr:content": {
"sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Create Site",
+ "jcr:title": "Edit Site",
"jcr:primaryType": "nt:unstructured",
"container": {
"jcr:primaryType": "nt:unstructured",
@@ -10,14 +10,12 @@
"richtext": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/richtext",
- "text": "<h3>Create Site</h3>"
+ "text": "<h3>Edit 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",
+ "button": "Edit Site",
"fields": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
@@ -28,17 +26,12 @@
"name": "jcr:title",
"required": true
},
- "name": {
+ "description": {
"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"
+ "sling:resourceType": "sling-cms/components/editor/fields/textarea",
+ "label": "Description",
+ "name": "jcr:description",
+ "required": false
},
"url": {
"jcr:primaryType": "nt:unstructured",
@@ -63,12 +56,6 @@
"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/file/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/file/edit.json
index 6887601..f11fdf7 100644
--- 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
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Edit File",
"jcr:primaryType": "nt:unstructured",
"container": {
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
index 1723c34..f8ae93f 100644
--- 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
@@ -1,17 +1,12 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "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",
- "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",
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
index 73a0458..8c04f36 100644
--- 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
@@ -1,59 +1,59 @@
{
- "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
+ "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",
+ "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"
+ }
+ }
+ }
+ }
+ }
+}
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
index 5d6c0e9..d2c64c9 100644
--- 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
@@ -1,17 +1,12 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "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",
- "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",
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
index 9b434ac..353affa 100644
--- 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
@@ -1,7 +1,7 @@
{
"jcr:primaryType": "sling:Page",
"jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
+ "sling:resourceType": "sling-cms/components/pages/form",
"jcr:title": "Create Folder",
"jcr:primaryType": "nt:unstructured",
"container": {
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
index a508fc6..44c9b33 100644
--- 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
@@ -1,44 +1,44 @@
{
- "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
+ "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"
+ }
+ }
+ }
+ }
+ }
+}
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 275fcc9..9c37266 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,67 +1,71 @@
{
- "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": "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"
+ }
+ }
+ },
+ "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",
+ "defaultPath": "/content",
+ "columns": {
"jcr:primaryType": "nt:unstructured",
- "resourceTypes":["sling:Site","sling:OrderedFolder"],
+ "resourceTypes": [
+ "sling:Site",
+ "sling:OrderedFolder"
+ ],
"name": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/name",
"link": true,
- "jcr:title":"Name",
- "prefix": "/cms/site/content.html"
+ "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",
+ "jcr:title": "Title",
"type": "String"
},
"lastModified": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/lastmodified",
- "jcr:title":"Last Modified",
+ "jcr:title": "Last Modified",
"subPath": "jcr:content/"
},
"actions": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/columns/actions",
- "jcr:title":"Actions",
+ "jcr:title": "Actions",
"edit": {
"jcr:primaryType": "nt:unstructured",
"modal": true,
@@ -84,8 +88,8 @@
"modal": true
}
}
- }
- }
- }
- }
+ }
+ }
+ }
+ }
}
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 2c061fa..b4ec947 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
@@ -1,110 +1,100 @@
{
- "jcr:primaryType": "sling:Page",
- "jcr:content": {
- "sling:resourceType": "sling-cms/components/pages/base",
- "jcr:title": "Start",
- "jcr:primaryType": "nt:unstructured",
- "sling:vanityPath": "/cms",
- "sling:redirect": true,
- "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": "<h2>Welcome to the Apache Sling CMS!<\/h2><p>This is a full-featured Content Management System built using the Apache Sling Framework! To begin, select Site on the left to add your first website.<\/p>"
- }
- },
- "nav": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/general/container",
- "sitenav": {
- "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"
- },
- "toolsnav": {
- "jcr:primaryType": "nt:unstructured",
- "sling:resourceType": "sling-cms/components/cms/staticnav",
- "title": "Tools",
- "links": {
- "jcr:primaryType": "nt:unstructured",
- "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)"
- },
- "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
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "sling:resourceType": "sling-cms/components/pages/base",
+ "jcr:title": "Start",
+ "jcr:primaryType": "nt:unstructured",
+ "sling:vanityPath": "/cms",
+ "sling:redirect": true,
+ "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": "<h2>Welcome to the Apache Sling CMS!<\/h2><p>This is a full-featured Content Management System built using the Apache Sling Framework! To begin, select Site on the left to add your first website.<\/p>"
+ }
+ },
+ "nav": {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/general/container",
+ "othernav": {
+ "jcr:primaryType": "nt:unstructured",
+ "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"
+ },
+ "templates": {
+ "jcr:primaryType": "nt:unstructured",
+ "link": "/cms/taxonomy/list.html/etc/taxonomy",
+ "text": "Templates"
+ },
+ "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",
+ "sling:resourceType": "sling-cms/components/cms/staticnav",
+ "title": "Tools",
+ "links": {
+ "jcr:primaryType": "nt:unstructured",
+ "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)"
+ },
+ "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"
+ }
+ }
+ }
+ }
+ }
+}
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
index f5d4a73..9a96b51 100644
--- 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
@@ -1,59 +1,59 @@
{
- "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
+ "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"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/templates/sitegroup.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/templates/sitegroup.json
new file mode 100644
index 0000000..8533f67
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/templates/sitegroup.json
@@ -0,0 +1,5 @@
+{
+ "jcr:contentType": "nt:unstructured",
+ "sling:resourceType" : "cms/template"
+
+}
[sling-org-apache-sling-app-cms] 05/17: SLING-7900 set core to java
8
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 14d282ffadea12e2b69a907d6b8afa75949c5887
Author: JE Bailey <ja...@sas.com>
AuthorDate: Thu Sep 13 08:31:09 2018 -0400
SLING-7900 set core to java 8
---
core/pom.xml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/core/pom.xml b/core/pom.xml
index f1a2568..d936bb1 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -186,4 +186,7 @@
<version>${project.version}</version>
</dependency>
</dependencies>
+ <properties>
+ <sling.java.version>8</sling.java.version>
+ </properties>
</project>
\ No newline at end of file
[sling-org-apache-sling-app-cms] 10/17: side navigation
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 68b45fb419305b2947a3b8f4f47828f183b50729
Author: Jason E Bailey <je...@apache.org>
AuthorDate: Mon Sep 17 11:41:58 2018 -0400
side navigation
---
.../sling/cms/core/models/components/Breadcrumbs.java | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
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
index d119638..0d2f8fa 100644
--- 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
@@ -39,7 +39,7 @@ import org.apache.sling.models.annotations.injectorspecific.Self;
*
*/
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
-public class Breadcrumbs extends BaseModel {
+public class Breadcrumbs {
@Inject
@Via("resource")
@@ -51,6 +51,10 @@ public class Breadcrumbs extends BaseModel {
@Via("resource")
@Default(values = "jcr:title")
String titleProp;
+
+ @Inject
+ @Self
+ public SlingHttpServletRequest slingRequest;
Resource suffixResource;
@@ -66,7 +70,7 @@ public class Breadcrumbs extends BaseModel {
boolean first = true;
while (suffixResource.getParent() != null) {
String suffix = suffixResource.getPath();
- pathData.add(0, new PathData(suffix, prefix + getTitle(suffixResource), first));
+ pathData.add(0, new PathData(prefix + suffix, getTitle(suffixResource), first));
if (first) {
first = false;
}
@@ -78,11 +82,12 @@ public class Breadcrumbs extends BaseModel {
}
private String getTitle(Resource resource) {
- String title = get("jcr:title", String.class);
+ ValueMap map = resource.getValueMap();
+ String title = map.get("jcr:title", String.class);
if (title != null) {
return title;
}
- title = get("jcr:content/jcr:title", String.class);
+ title = map.get("jcr:content/jcr:title", String.class);
if (title != null) {
return title;
}
@@ -109,8 +114,6 @@ public class Breadcrumbs extends BaseModel {
return href; // prefix + resource path
}
- // ${parent.valueMap['jcr:title'] != null ? parent.valueMap['jcr:title'] :
- // parent.valueMap['jcr:content/jcr:title']}" default="${parent.name}"
public String getTitle() {
return title;
}
[sling-org-apache-sling-app-cms] 08/17: SLING-7900 UI dynamic file
actions
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit f0ffbd3c4c1d3768f3e5e2bf9d97436e6a044938
Author: Jason E Bailey <je...@apache.org>
AuthorDate: Thu Sep 13 20:21:48 2018 -0400
SLING-7900 UI dynamic file actions
---
.../core/models/components/AvailableActions.java | 31 +++++
.../jcr_root/libs/sling-cms/actions/nt%3Afile.json | 46 +++++++
.../libs/sling-cms/actions/sling%3AFile.json | 46 +++++++
.../libs/sling-cms/actions/sling%3AFolder.json | 25 ++++
.../sling-cms/actions/sling%3AOrderedFolder.json | 25 ++++
.../libs/sling-cms/actions/sling%3APage.json | 38 ++++++
.../libs/sling-cms/actions/sling%3ASite.json | 24 ++++
.../components/cms/columns/actions/actions.jsp | 42 +++---
.../components/cms/columns/publish/publish.jsp | 4 +-
.../sling-cms/content/actions/create/config.json | 2 +-
.../sling-cms/content/actions/create/folder.json | 7 +-
.../sling-cms/content/actions/create/page.json | 7 +-
.../sling-cms/content/actions/create/site.json | 142 ++++++++++-----------
.../sling-cms/content/actions/edit/folder.json | 7 +-
.../libs/sling-cms/content/actions/edit/site.json | 2 +-
.../sling-cms/content/actions/edit/sitegroup.json | 3 +-
.../sling-cms/content/actions/edit/taxonomy.json | 7 +-
.../sling-cms/content/actions/edit/template.json | 5 -
.../sling-cms/content/actions/shared/delete.json | 83 ++++++------
.../sling-cms/content/actions/shared/movecopy.json | 121 +++++++++---------
.../sling-cms/content/actions/shared/publish.json | 79 ++++++------
.../sling-cms/content/actions/shared/search.json | 104 +++++++--------
.../content/actions/shared/unpublish.json | 79 ++++++------
.../sling-cms/content/actions/shared/versions.json | 35 +++--
.../jcr_root/libs/sling-cms/content/page/edit.json | 106 +++++++--------
.../sling-cms/content/page/editproperties.json | 30 ++---
.../libs/sling-cms/content/page/pagewrapper.json | 4 +-
.../sling-cms/content/page/siteeditproperties.json | 35 +++--
.../libs/sling-cms/content/site/content.json | 41 ------
.../libs/sling-cms/content/site/sites.json | 26 ----
30 files changed, 663 insertions(+), 543 deletions(-)
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java b/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
index 767cb6f..13e4770 100644
--- a/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/AvailableActions.java
@@ -16,6 +16,37 @@
*/
package org.apache.sling.cms.core.models.components;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+import javax.inject.Inject;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+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 AvailableActions {
+ @Inject
+ @Self
+ SlingHttpServletRequest slingRequest;
+
+ public List<Resource> getChildren() {
+ System.out.println(slingRequest.getContextPath());
+ System.out.println(slingRequest.getResource().getPath());
+ String type = slingRequest.getResource().getValueMap().get("jcr:primaryType", "sling:File");
+ System.out.println(type);
+ Resource resource = slingRequest.getResourceResolver().resolve("/libs/sling-cms/actions/"+type);
+
+ List<Resource> list = new ArrayList<>();
+ resource.listChildren().forEachRemaining(list::add);
+ System.out.println(list.toString());
+ return list;
+ }
+
}
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..fc1963a
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/nt%3Afile.json
@@ -0,0 +1,46 @@
+{
+ "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/actions/edit/file.html"
+ },
+ "optimize": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Optimize File",
+ "icon": "archive",
+ "prefix": "/cms/actions/optimize/file.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/actions/sling%3AFile.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFile.json
new file mode 100644
index 0000000..fc1963a
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFile.json
@@ -0,0 +1,46 @@
+{
+ "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/actions/edit/file.html"
+ },
+ "optimize": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": false,
+ "title": "Optimize File",
+ "icon": "archive",
+ "prefix": "/cms/actions/optimize/file.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/actions/sling%3AFolder.json b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFolder.json
new file mode 100644
index 0000000..f437acb
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AFolder.json
@@ -0,0 +1,25 @@
+{
+ "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/actions/edit/folder.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Folder",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Delete Folder",
+ "icon": "trash",
+ "prefix": "/cms/actions/shared/delete.html"
+ }
+}
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..6a91288
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3AOrderedFolder.json
@@ -0,0 +1,25 @@
+{
+ "jcr:primartyType": "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/actions/edit/sitegroup.html"
+ },
+ "movecopy": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Move / Copy Site Group",
+ "icon": "move-alt",
+ "prefix": "/cms/actions/shared/movecopy.html"
+ },
+ "delete": {
+ "jcr:primaryType": "nt:unstructured",
+ "title": "Delete Site Group",
+ "icon": "trash",
+ "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..356523e
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3APage.json
@@ -0,0 +1,38 @@
+{
+ "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"
+ }
+}
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..7a92041
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/actions/sling%3ASite.json
@@ -0,0 +1,24 @@
+{
+ "jcr:resourceType": "nt:unstructured",
+ "edit": {
+ "jcr:primaryType": "nt:unstructured",
+ "modal": true,
+ "title": "Edit Site",
+ "icon": "pencil-f",
+ "prefix": "/cms/action/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/components/cms/columns/actions/actions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/actions/actions.jsp
index b1e51fb..116cea6 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
@@ -18,20 +18,28 @@
*/ --%>
<%@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>
\ No newline at end of file
+<sling:adaptTo adaptable="${slingRequest}"
+ adaptTo="org.apache.sling.cms.core.models.components.AvailableActions" var="model" />
+<c:forEach var="child" items="${model.children}">
+ <c:choose>
+ <c:when test="${child.valueMap.modal}">
+ <a class="button Fetch-Modal"
+ data-title="${sling:encode(child.valueMap.title,'HTML_ATTR')}"
+ data-path="${child.valueMap.ajaxPath != null ? actionConfig.valueMap.ajaxPath : '.Main-Content form'}"
+ href="${child.valueMap.prefix}${resource.path}"
+ title="${sling:encode(child.valueMap.title,'HTML_ATTR')}">
+ <span class="jam jam-${child.valueMap.icon}">
+ </span>
+ </a>
+ </c:when>
+ <c:otherwise>
+ <a class="button"
+ ${child.valueMap.new != false ? 'target="_blank"' : ''}
+ href="${child.valueMap.prefix}${resource.path}"
+ title="${sling:encode(child.valueMap.title,'HTML_ATTR')}">
+ <span class="jam jam-${child.valueMap.icon}">
+ </span>
+ </a>
+ </c:otherwise>
+ </c:choose>
+ </c:forEach></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 ee55ded..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
@@ -20,12 +20,12 @@
<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-centered Fetch-Modal" href="/cms/shared/unpublish.html${resource.path}" title="Click to Unpublish" data-title="Unpublish" data-path=".Main-Content form">
+ <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-danger Fetch-Modal" href="/cms/shared/publish.html${resource.path}" title="Click to Publish" data-title="Publish" data-path=".Main-Content form">
+ <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>
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
index 2d1d7ff..e08e63d 100644
--- 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
@@ -16,7 +16,7 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
"actionSuffix": "/*",
- "button": "Create Site Config",
+ "button": "Create",
"successPrepend": "/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "nt:unstructured",
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
index 8c04f36..485bce9 100644
--- 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
@@ -7,16 +7,11 @@
"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",
+ "button": "Create",
"successPrepend": "/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "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
index 003f562..bf3e2db 100644
--- 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
@@ -7,15 +7,10 @@
"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",
+ "button": "Create",
"successPrepend": "/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "nt:unstructured",
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
index d2c64c9..ecb522f 100644
--- 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
@@ -1,72 +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"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
+ "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/edit/folder.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/actions/edit/folder.json
index bb2371b..1e41cbe 100644
--- 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
@@ -7,15 +7,10 @@
"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",
+ "button": "Save Changes",
"successPrepend": "/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "nt:unstructured",
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
index e73af63..ec528b8 100644
--- 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
@@ -15,7 +15,7 @@
"slingform": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
- "button": "Edit Site",
+ "button": "Save Changes",
"fields": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
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
index 6c29d0f..93063f6 100644
--- 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
@@ -15,8 +15,7 @@
"slingform": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
- "actionSuffix": "/*",
- "button": "Create Folder",
+ "button": "Save Changes",
"successPrepend": "/libs/sling-cms/content/site/content.html",
"fields": {
"jcr:primaryType": "nt:unstructured",
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
index 2f46bd1..f664ab9 100644
--- 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
@@ -7,15 +7,10 @@
"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",
+ "button": "Save Changes",
"fields": {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/general/container",
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
index 9ae587a..f02fa95 100644
--- 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
@@ -7,11 +7,6 @@
"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"
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
index 6b9b365..d5c30c4 100644
--- 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
@@ -1,45 +1,40 @@
{
- "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
+ "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
index 8d6c399..0b70b80 100644
--- 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
@@ -1,64 +1,59 @@
{
- "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
+ "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
index 2abc9d5..6206d21 100644
--- 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
@@ -1,43 +1,38 @@
{
- "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
+ "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
index 63655ff..7ca912a 100644
--- 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
@@ -1,53 +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"
- }
- }
- }
-}
\ No newline at end of file
+ "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
index ece8b0f..3abdecd 100644
--- 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
@@ -1,43 +1,38 @@
{
- "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
+ "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
index ca321bf..9fda781 100644
--- 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
@@ -1,21 +1,16 @@
{
- "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
+ "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/page/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/page/edit.json
index 82bc782..63b8a90 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/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"
+ }
+ }
+ }
+}
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..8b23187 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/base",
+ "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/site/content.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/content.json
index 365848c..d882436 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
@@ -76,47 +76,6 @@
"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": 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 the specified page",
- "icon": "trash",
- "prefix": "/cms/actions/shared/delete.html"
- }
}
}
}
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 628c6bc..85b1f8e 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
@@ -63,32 +63,6 @@
"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 Site Group",
- "icon": "pencil-f",
- "prefix": "/cms/actions/edit/sitegroup.html"
- },
- "movecopy": {
- "jcr:primaryType": "nt:unstructured",
- "modal": true,
- "title": "Move / Copy Site Group",
- "icon": "move-alt",
- "prefix": "/cms/actions/shared/movecopy.html"
- },
- "delete": {
- "jcr:primaryType": "nt:unstructured",
- "title": "Delete Site Group",
- "icon": "trash",
- "prefix": "/cms/actions/shared/delete.html",
- "modal": true
- }
}
}
}
[sling-org-apache-sling-app-cms] 02/17: initial refactoring of
content breadcrumbs and content table
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 5ca7ff2961b3c8df002608d4b315797d4b66d04f
Author: JE Bailey <ja...@sas.com>
AuthorDate: Mon Sep 10 16:36:03 2018 -0400
initial refactoring of content breadcrumbs and content table
---
.../cms/core/models/components/Breadcrumbs.java | 94 ++++--
.../cms/core/models/components/ContentTable.java | 141 ++++++++
ui/pom.xml | 14 +
ui/src/main/frontend/src/js/cms.js | 11 +-
.../sling-cms/components/cms/columns/name/name.jsp | 2 +-
.../components/cms/columns/publish/publish.jsp | 10 +-
.../cms/contentbreadcrumb/contentbreadcrumb.jsp | 12 +-
.../components/cms/contenttable/contenttable.jsp | 37 +--
.../libs/sling-cms/content/site/content.json | 364 +++++----------------
.../libs/sling-cms/content/site/sites.json | 163 +++------
.../libs/sling-cms/content/static/content.json | 176 +++++-----
.../resources/jcr_root/libs/sling-cms/global.jsp | 2 +-
ui/src/main/resources/jcr_root/web-fragment.xml | 5 -
13 files changed, 458 insertions(+), 573 deletions(-)
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
index 4c7da58..a856490 100644
--- 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
@@ -17,77 +17,123 @@
package org.apache.sling.cms.core.models.components;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import javax.inject.Named;
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.Default;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.Via;
import org.apache.sling.models.annotations.injectorspecific.Self;
-@Model(adaptables = SlingHttpServletRequest.class,defaultInjectionStrategy=DefaultInjectionStrategy.OPTIONAL)
+@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class Breadcrumbs {
@Inject
+ @Via("resource")
int depth;
@Inject
- @Named("jcr:title")
- String title;
+ Resource resource;
@Inject
+ @Via("resource")
String prefix;
-
+
@Inject
- Resource resource;
-
+ @Via("resource")
+ @Default(values = "jcr:title")
+ String titleProp;
+
@Self
SlingHttpServletRequest servletRequest;
-
+
Resource suffixResource;
-
+
List<PathData> pathData = new ArrayList<>();
@PostConstruct
public void postConstruct() {
suffixResource = servletRequest.getRequestPathInfo().getSuffixResource();
- pathData.add(new PathData(prefix+resource.getPath(),title));
+ if (suffixResource == null) {
+ return;
+ }
+ 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();
+ }
+ 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 String getTitle() {
return null;
}
-
+
public List<PathData> getPathData() {
return pathData;
}
-
- public String getString() {
- return "flounder";
- }
-
- public static class PathData{
-
+
+ public static class PathData {
+
private String href;
private String title;
-
- public PathData(String href, 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
+ return href; // prefix + resource path
}
- //${parent.valueMap['jcr:title'] != null ? parent.valueMap['jcr:title'] : parent.valueMap['jcr:content/jcr:title']}" default="${parent.name}"
+
+ // ${parent.valueMap['jcr:title'] != null ? parent.valueMap['jcr:title'] :
+ // parent.valueMap['jcr:content/jcr:title']}" default="${parent.name}"
public String getTitle() {
return title;
}
+ public String getAria() {
+ if (first) {
+ return "aria-current='page'";
+ }
+ return "";
+ }
+
+ public String getClassAttr() {
+ if (first) {
+ return "class='is-active'";
+ }
+ return "";
+ }
+
}
}
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..21ed513
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/ContentTable.java
@@ -0,0 +1,141 @@
+/*
+ * 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.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.Via;
+import org.apache.sling.models.annotations.injectorspecific.Self;
+
+@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
+public class ContentTable {
+
+ @Inject
+ @Via("resource")
+ private List<Resource> columns;
+
+ private String[] types;
+
+ @Self
+ SlingHttpServletRequest slingRequest;
+
+ @PostConstruct
+ public void init() {
+ Resource resource = slingRequest.getResource();
+ ValueMap data = resource.getChild("columns").getValueMap();
+ types = data.get("resourceTypes", new String[]{});
+ }
+
+ public List<ColumnData> getColumnData() {
+ return columns.stream().map(ColumnData::new).filter(ColumnData::isEligible).collect(Collectors.toList());
+ }
+
+ public List<ChildResourceData> getChildren() {
+ Resource suffix = slingRequest.getRequestPathInfo().getSuffixResource();
+ if (suffix == null) {
+ return Collections.emptyList();
+ }
+ List<ChildResourceData> response = new ArrayList<>();
+ suffix.listChildren().forEachRemaining(child -> {
+ for (String type:types) {
+ if (child.getResourceType().equals(type)) {
+ 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/ui/pom.xml b/ui/pom.xml
index a5db13e..4a031e4 100644
--- a/ui/pom.xml
+++ b/ui/pom.xml
@@ -178,5 +178,19 @@
<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 97a9533..7f17092 100644
--- a/ui/src/main/frontend/src/js/cms.js
+++ b/ui/src/main/frontend/src/js/cms.js
@@ -39,7 +39,7 @@ Sling.CMS = {
},
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>');
+ 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');
@@ -50,11 +50,16 @@ Sling.CMS = {
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>');
+ 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-warning button" aria-label="close">Cancel</a></footer></div>');
$('body').append($modal);
$modal.find('.modal-card-body').load(link + " " +path,function(){
+ var submitButton = $modal.find('button:submit');
+ $modal.find('.modal-card-foot').append(submitButton);
+ submitButton.on("click",function(){
+ $modal.find('form').submit();
+ })
$modal.addClass('is-active');
- $modal.find('.delete,.close-modal').click(function(){
+ $modal.find('.close-modal').click(function(){
$modal.css('display','none').remove();
return false;
});
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..0245485 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
@@ -21,7 +21,7 @@
<c:set var="colValue" value="${resource.name}" />
<c:choose>
<c:when test="${colConfig.valueMap.link}">
- <a href="${colConfig.valueMap.prefix}${resource.path}">
+ <a class="button is-outlined" href="${colConfig.valueMap.prefix}${resource.path}">
<sling:encode value="${colValue}" mode="HTML" />
</a>
</c:when>
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..2005d42 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/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-warning Fetch-Modal" href="/cms/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/contentbreadcrumb/contentbreadcrumb.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
index 9de9e1c..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
@@ -18,20 +18,16 @@
*/ --%>
<%@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="${resource}" adaptTo="org.apache.sling.cms.core.models.components.Breadcrumbs" var="model"/><nav class="breadcrumb" aria-label="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>
<c:forEach var="item" items="${model.pathData}">
<li>
- <a href="${item.href}">
+ <a href="${item.href}" ${item.aria} ${item.classAttr} >
<sling:encode value="${item.title}" mode="HTML" />
</a>
</li>
</c:forEach>
- <li>$WHY?
- <li>${model.string}</li>
</ul>
</nav>
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..288d921 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,29 @@
* 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.ContentTable" var="model"/>
+ <div class="container is-fullwidth">
<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" />
+ <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 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:set var="count" value="${count + 1}" />
- </c:if>
</c:forEach>
</tbody>
-</table>
\ No newline at end of file
+</table>
+</div>
\ 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..9383b5d 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
@@ -39,297 +39,79 @@
"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"
- }
- }
- }
- }
+ "resourceTypes" : ["sling:Page","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/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",
+ "jcr:title":"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"
+ }
+ }
}
}
}
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..275fcc9 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
@@ -36,121 +36,54 @@
"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": "nt:unstructured",
+ "resourceTypes":["sling:Site","sling:OrderedFolder"],
+ "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"
+ },
+ "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 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
+ }
+ }
}
}
}
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..71a2c04 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
@@ -34,109 +34,93 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/cms/contenttable",
"columns": {
+ "resourceTypes":["sling:File","sling:OrderedFolder","sling:Folder","nt:file"],
"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"
- }
+ "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/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"
+ }
+ }
},
"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":{
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" />
diff --git a/ui/src/main/resources/jcr_root/web-fragment.xml b/ui/src/main/resources/jcr_root/web-fragment.xml
deleted file mode 100644
index 78ede58..0000000
--- a/ui/src/main/resources/jcr_root/web-fragment.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<web-fragment id="WebFragment_ID" version="3.0"
- xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd">
- <name>ui</name>
-</web-fragment>
\ No newline at end of file
[sling-org-apache-sling-app-cms] 03/17: table updates and modals
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 3e2496b828151d4b378e88032ca170283a94db74
Author: JE Bailey <ja...@sas.com>
AuthorDate: Tue Sep 11 16:01:47 2018 -0400
table updates and modals
---
ui/src/main/frontend/src/js/cms.js | 5 +-
.../sling-cms/components/cms/columns/name/name.jsp | 25 +++----
.../components/cms/columns/publish/publish.jsp | 2 +-
.../components/cms/contentbreadcrumb/edit.json | 31 ++++++++
.../components/cms/contenttable/contenttable.jsp | 33 ++++----
.../components/editor/fields/file/field.jsp | 87 ++++++++++------------
.../components/editor/fields/repeating/field.jsp | 12 +--
7 files changed, 108 insertions(+), 87 deletions(-)
diff --git a/ui/src/main/frontend/src/js/cms.js b/ui/src/main/frontend/src/js/cms.js
index 7f17092..d53ed3d 100644
--- a/ui/src/main/frontend/src/js/cms.js
+++ b/ui/src/main/frontend/src/js/cms.js
@@ -54,12 +54,13 @@ Sling.CMS = {
$('body').append($modal);
$modal.find('.modal-card-body').load(link + " " +path,function(){
var submitButton = $modal.find('button:submit');
- $modal.find('.modal-card-foot').append(submitButton);
+ var closeButton = $modal.find('.close-modal');
+ submitButton.insertBefore(closeButton);
submitButton.on("click",function(){
$modal.find('form').submit();
})
$modal.addClass('is-active');
- $modal.find('.close-modal').click(function(){
+ closeButton.click(function(){
$modal.css('display','none').remove();
return false;
});
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 0245485..5455d56 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,15 @@
* 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 class="button is-outlined" 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
+<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-link"></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 2005d42..ee55ded 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
@@ -25,7 +25,7 @@
</a>
</c:when>
<c:otherwise>
- <a class="button is-warning Fetch-Modal" href="/cms/shared/publish.html${resource.path}" title="Click to Publish" data-title="Publish" data-path=".Main-Content form">
+ <a class="button is-danger Fetch-Modal" href="/cms/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>
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/contenttable/contenttable.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
index 288d921..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,29 +16,30 @@
* 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.ContentTable" var="model"/>
- <div class="container is-fullwidth">
+<%@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>
<c:forEach var="column" items="${model.columnData}">
- <th class="${column.classString}" data-attribute="${column.name}">
- <sling:encode value="${column.title}" mode="HTML" />
- </th>
+ <th class="${column.classString}"
+ data-attribute="${column.name}"><sling:encode
+ value="${column.title}" mode="HTML" /></th>
</c:forEach>
</tr>
</thead>
<tbody>
<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>
+ <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>
-</div>
\ No newline at end of file
+</table>
\ 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 fec99b8..bd50290 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
[sling-org-apache-sling-app-cms] 16/17: AEM-7900 fixed corrupted
start.json
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit e0b2b83da3026477a60280e3566807e5f4c669fb
Author: JE Bailey <ja...@sas.com>
AuthorDate: Mon Oct 1 15:33:48 2018 -0400
AEM-7900 fixed corrupted start.json
---
.../jcr_root/libs/sling-cms/content/start.json | 83 +++++++++++-----------
1 file changed, 42 insertions(+), 41 deletions(-)
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 2e9aa72..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
@@ -58,50 +58,51 @@
"title": "Tools",
"links": {
"jcr:primaryType": "nt:unstructured",
- "links": {
- "jcr:primaryType": "nt:unstructured",
- "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": {
+ "links": {
"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
+}
[sling-org-apache-sling-app-cms] 01/17: initial changes
Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch SLING-7900
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 5d2c55ae3c54ccceb1538c8ac6d155d6ee1e5f2c
Author: JE Bailey <ja...@sas.com>
AuthorDate: Fri Sep 7 13:25:13 2018 -0400
initial changes
---
.../cms/core/models/components/Breadcrumbs.java | 93 ++++++++++++++++++++++
ui/pom.xml | 12 +++
.../cms/contentbreadcrumb/contentbreadcrumb.jsp | 40 ++++------
ui/src/main/resources/jcr_root/web-fragment.xml | 5 ++
4 files changed, 126 insertions(+), 24 deletions(-)
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..4c7da58
--- /dev/null
+++ b/core/src/main/java/org/apache/sling/cms/core/models/components/Breadcrumbs.java
@@ -0,0 +1,93 @@
+/*
+ * 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 javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+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 Breadcrumbs {
+
+ @Inject
+ int depth;
+
+ @Inject
+ @Named("jcr:title")
+ String title;
+
+ @Inject
+ String prefix;
+
+ @Inject
+ Resource resource;
+
+ @Self
+ SlingHttpServletRequest servletRequest;
+
+ Resource suffixResource;
+
+ List<PathData> pathData = new ArrayList<>();
+
+ @PostConstruct
+ public void postConstruct() {
+ suffixResource = servletRequest.getRequestPathInfo().getSuffixResource();
+ pathData.add(new PathData(prefix+resource.getPath(),title));
+ }
+
+ public String getTitle() {
+ return null;
+ }
+
+ public List<PathData> getPathData() {
+ return pathData;
+ }
+
+ public String getString() {
+ return "flounder";
+ }
+
+ public static class PathData{
+
+ private String href;
+ private String title;
+
+ public PathData(String href, String title) {
+ this.href = href;
+ this.title = title;
+ }
+ public String getHref() {
+ return href; //prefix + resource path
+ }
+ //${parent.valueMap['jcr:title'] != null ? parent.valueMap['jcr:title'] : parent.valueMap['jcr:content/jcr:title']}" default="${parent.name}"
+ public String getTitle() {
+ return title;
+ }
+
+ }
+
+}
diff --git a/ui/pom.xml b/ui/pom.xml
index 513307e..a5db13e 100644
--- a/ui/pom.xml
+++ b/ui/pom.xml
@@ -167,4 +167,16 @@
</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>
+ </dependencies>
</project>
\ 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..9de9e1c 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,22 @@
* 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="${resource}" adaptTo="org.apache.sling.cms.core.models.components.Breadcrumbs" var="model"/><nav class="breadcrumb" aria-label="breadcrumbs">
<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}">
+ <sling:encode value="${item.title}" mode="HTML" />
+ </a>
+ </li>
+ </c:forEach>
+ <li>$WHY?
+ <li>${model.string}</li>
</ul>
</nav>
diff --git a/ui/src/main/resources/jcr_root/web-fragment.xml b/ui/src/main/resources/jcr_root/web-fragment.xml
new file mode 100644
index 0000000..78ede58
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/web-fragment.xml
@@ -0,0 +1,5 @@
+<web-fragment id="WebFragment_ID" version="3.0"
+ xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd">
+ <name>ui</name>
+</web-fragment>
\ No newline at end of file