This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git


The following commit(s) were added to refs/heads/master by this push:
     new 909bb50  Adding a filter to the content table and adding some helper 
methods to the models for common site structures
     new 79781b0  Merge branch 'master' of github.com:apache/sling-whiteboard
909bb50 is described below

commit 909bb503f38830ff890f787cdcb66bc2f4dc6472
Author: Dan Klco <[email protected]>
AuthorDate: Mon Feb 26 20:17:35 2018 -0800

    Adding a filter to the content table and adding some helper methods to the 
models for common site structures
---
 .../org/apache/sling/cms/core/models/Page.java     | 22 ++++++++++++++++++++--
 .../org/apache/sling/cms/core/models/Site.java     | 22 +++++++++++++++++-----
 cms/ui/src/main/frontend/src/js/scripts.js         | 20 ++++++++++++++++++++
 .../resources/SLING-INF/nodetypes/nodetypes.cnd    |  1 +
 .../cms/contentbreadcrumb/contentbreadcrumb.jsp    |  8 +++++++-
 .../components/cms/contenttable/contenttable.jsp   |  2 +-
 .../components/editor/scripts/localeOptions.jsp    |  2 +-
 .../jcr_root/libs/sling-cms/content/site/edit.json |  7 +++++++
 .../libs/sling-cms/content/template/create.json    |  2 +-
 9 files changed, 75 insertions(+), 11 deletions(-)

diff --git a/cms/core/src/main/java/org/apache/sling/cms/core/models/Page.java 
b/cms/core/src/main/java/org/apache/sling/cms/core/models/Page.java
index 5ff42dd..e7bb46b 100644
--- a/cms/core/src/main/java/org/apache/sling/cms/core/models/Page.java
+++ b/cms/core/src/main/java/org/apache/sling/cms/core/models/Page.java
@@ -57,11 +57,29 @@ public class Page extends AbstractContentModel {
                return published;
        }
 
-       public String getTemplatePath() {
-               return this.template;
+       public String getPublishedPath() {
+               Site site = resource.adaptTo(SiteManager.class).getSite();
+               if (site != null) {
+                       return resource.getPath().replace(site.getPath(), "") + 
".html";
+               } else {
+                       return resource.getPath() + ".html";
+               }
+       }
+
+       public String getPublishedURL() {
+               Site site = resource.adaptTo(SiteManager.class).getSite();
+               if (site != null) {
+                       return site.getUrl() + getPublishedPath();
+               } else {
+                       return resource.getPath();
+               }
        }
 
        public PageTemplate getTemplate() {
                return 
this.resource.getResourceResolver().getResource(template).adaptTo(PageTemplate.class);
        }
+
+       public String getTemplatePath() {
+               return this.template;
+       }
 }
diff --git a/cms/core/src/main/java/org/apache/sling/cms/core/models/Site.java 
b/cms/core/src/main/java/org/apache/sling/cms/core/models/Site.java
index 84e377d..ffe9c9f 100644
--- a/cms/core/src/main/java/org/apache/sling/cms/core/models/Site.java
+++ b/cms/core/src/main/java/org/apache/sling/cms/core/models/Site.java
@@ -34,6 +34,7 @@ import org.apache.sling.models.annotations.Optional;
 public class Site {
 
        public static final String PN_CONFIG = CMSConstants.NAMESPACE + 
":config";
+       public static final String PN_URL = CMSConstants.NAMESPACE + ":url";
 
        private static Resource findSiteResource(Resource resource) {
                if 
(CMSConstants.NT_SITE.equals(resource.getValueMap().get(JcrConstants.JCR_PRIMARYTYPE,
 String.class))) {
@@ -72,6 +73,10 @@ public class Site {
        @Named(CMSConstants.PN_TITLE)
        private String title;
 
+       @Inject
+       @Named(PN_URL)
+       private String url;
+
        public Site(Resource resource) {
                this.resource = resource;
        }
@@ -102,10 +107,6 @@ public class Site {
                return description;
        }
 
-       public String getLocaleString() {
-               return locale;
-       }
-
        public Locale getLocale() {
                String[] segments = locale.split("_");
                if (segments.length == 3) {
@@ -116,6 +117,10 @@ public class Site {
                return new Locale(segments[0]);
        }
 
+       public String getLocaleString() {
+               return locale;
+       }
+
        public String getPath() {
                return resource.getPath();
        }
@@ -140,6 +145,13 @@ public class Site {
                return title;
        }
 
+       /**
+        * @return the url
+        */
+       public String getUrl() {
+               return url;
+       }
+
        /*
         * (non-Javadoc)
         * 
@@ -161,7 +173,7 @@ public class Site {
        @Override
        public String toString() {
                return "Site [config=" + config + ", description=" + 
description + ", locale=" + locale + ", resource="
-                               + resource + ", title=" + title + "]";
+                               + resource + ", title=" + title + ", url=" + 
url + "]";
        }
 
 }
diff --git a/cms/ui/src/main/frontend/src/js/scripts.js 
b/cms/ui/src/main/frontend/src/js/scripts.js
index ee041ed..8bb38d5 100644
--- a/cms/ui/src/main/frontend/src/js/scripts.js
+++ b/cms/ui/src/main/frontend/src/js/scripts.js
@@ -154,6 +154,26 @@ Sling.CMS = {
                }
        };
 
+       Sling.CMS.ext['content-filter'] = {
+               decorate: function($ctx) {
+                       var filterContent = function(){
+                               var term = $('.content-filter 
input[type=text]').val().toLowerCase();
+                               $('.sortable tbody tr').each(function(idx,el){
+                                       
if($(el).text().toLowerCase().indexOf(term) !== -1){
+                                               $(el).show();
+                                       } else {
+                                               $(el).hide();
+                                       }
+                               });
+                       }
+                       $('.content-filter').submit(function(){
+                               filterContent();
+                               return false;
+                       });
+                       $('.content-filter 
input[type=text]').keyup(filterContent).change(filterContent);
+               }
+       }
+
        Sling.CMS.ext['fetch-json'] = {
                decorate: function($ctx) {
                        $ctx.find('.fetch-json').each(function(){
diff --git a/cms/ui/src/main/resources/SLING-INF/nodetypes/nodetypes.cnd 
b/cms/ui/src/main/resources/SLING-INF/nodetypes/nodetypes.cnd
index 308cba8..b4bce16 100644
--- a/cms/ui/src/main/resources/SLING-INF/nodetypes/nodetypes.cnd
+++ b/cms/ui/src/main/resources/SLING-INF/nodetypes/nodetypes.cnd
@@ -57,6 +57,7 @@
        - sling:config (string)
        - sling:created (date)
        - sling:createdBy (string)
+       - sling:url (string)
        - jcr:language (string)
        - jcr:lastModified (date)
        - jcr:lastModifiedBy (string)
diff --git 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
index 5a6c606..5bc7d95 100644
--- 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
+++ 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
@@ -38,4 +38,10 @@
                        <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.suffix}" mode="HTML" />
                </li>
        </c:if>
-</ul>
\ No newline at end of file
+       <li class="Pull-Right">
+               <form method="get" class="content-filter">
+                       <label for="filter" class="hide">Filter</label>
+                       <input type="text" placeholder="Filter..." />
+               </form>
+       </li>
+</ul>
diff --git 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
index 5e8554c..312ea53 100644
--- 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
+++ 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
@@ -17,7 +17,7 @@
  * under the License.
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
-<table>
+<table class="sortable">
        <thead>
                <tr>
                        <c:forEach var="column" 
items="${sling:listChildren(sling:getRelativeResource(resource,'columns'))}">
diff --git 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp
 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp
index 21c925f..6ade9a5 100644
--- 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp
+++ 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp
@@ -20,7 +20,7 @@
 <option value="">Select Locale</option>
 <c:forEach var="locale" 
items="${sling:adaptTo(slingRequest,'org.apache.sling.cms.core.models.LocaleList').locales}">
        <c:if test="${not empty locale.language}">
-               <option value="${locale}" ${rt == 
editProperties['sling:locale'] ? 'selected' : ''}>
+               <option value="${locale}" ${locale == 
editProperties['jcr:language'] ? 'selected' : ''}>
                        ${locale.displayLanguage} ${locale.displayCountry} 
(${locale})
                </option>
        </c:if>
diff --git 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/edit.json 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/edit.json
index b7da6cb..0fdc13e 100644
--- a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/edit.json
+++ b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/site/edit.json
@@ -33,6 +33,13 @@
                                                "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",
diff --git 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json
 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json
index e03f223..851eed0 100644
--- 
a/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json
+++ 
b/cms/ui/src/main/resources/jcr_root/libs/sling-cms/content/template/create.json
@@ -15,7 +15,7 @@
                        "slingform": {
                                "jcr:primaryType": "nt:unstructured",
                                "sling:resourceType": 
"sling-cms/components/editor/slingform",
-                               "actionSuffix": "/*",
+                               "actionSuffix": "/templates/",
                                "button": "Create Template",
                                
"successPrepend":"/libs/sling-cms/content/site/content.html",
                                "fields": {

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to