Author: olli
Date: Thu Sep 18 10:39:36 2014
New Revision: 1625935
URL: http://svn.apache.org/r1625935
Log:
SLING-3912 improve sample (mostly natural templating)
Added:
sling/trunk/samples/fling/src/main/resources/apps/fling/page/fragments/head.html
Modified:
sling/trunk/samples/fling/src/main/java/org/apache/sling/samples/fling/internal/Activator.java
sling/trunk/samples/fling/src/main/resources/apps/fling/page/simple/html.html
sling/trunk/samples/fling/src/main/resources/apps/fling/page/user/html.html
sling/trunk/samples/fling/src/main/resources/content/fling.json
Modified:
sling/trunk/samples/fling/src/main/java/org/apache/sling/samples/fling/internal/Activator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/samples/fling/src/main/java/org/apache/sling/samples/fling/internal/Activator.java?rev=1625935&r1=1625934&r2=1625935&view=diff
==============================================================================
---
sling/trunk/samples/fling/src/main/java/org/apache/sling/samples/fling/internal/Activator.java
(original)
+++
sling/trunk/samples/fling/src/main/java/org/apache/sling/samples/fling/internal/Activator.java
Thu Sep 18 10:39:36 2014
@@ -41,6 +41,7 @@ public class Activator implements Bundle
public void stop(BundleContext bundleContext) throws Exception {
if (serviceRegistration != null) {
serviceRegistration.unregister();
+ serviceRegistration = null;
}
}
Added:
sling/trunk/samples/fling/src/main/resources/apps/fling/page/fragments/head.html
URL:
http://svn.apache.org/viewvc/sling/trunk/samples/fling/src/main/resources/apps/fling/page/fragments/head.html?rev=1625935&view=auto
==============================================================================
---
sling/trunk/samples/fling/src/main/resources/apps/fling/page/fragments/head.html
(added)
+++
sling/trunk/samples/fling/src/main/resources/apps/fling/page/fragments/head.html
Thu Sep 18 10:39:36 2014
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head th:fragment="default">
+ <meta charset="UTF-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <title th:text="${page.title}">Page Title</title>
+ <link rel="stylesheet"
href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
+ <link rel="stylesheet" href="/fling/assets/css/fling.css"/>
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
type="text/javascript"></script>
+ <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"
type="text/javascript"></script>
+</head>
+<body>
+</body>
+</html>
Modified:
sling/trunk/samples/fling/src/main/resources/apps/fling/page/simple/html.html
URL:
http://svn.apache.org/viewvc/sling/trunk/samples/fling/src/main/resources/apps/fling/page/simple/html.html?rev=1625935&r1=1625934&r2=1625935&view=diff
==============================================================================
---
sling/trunk/samples/fling/src/main/resources/apps/fling/page/simple/html.html
(original)
+++
sling/trunk/samples/fling/src/main/resources/apps/fling/page/simple/html.html
Thu Sep 18 10:39:36 2014
@@ -19,35 +19,51 @@
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
th:with="page=${resource.adaptTo(@org.apache.sling.samples.fling.Page@class)}">
-<head>
+<head th:replace="/apps/fling/page/fragments/head.html::default">
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <title th:text="${page.title}">Page Title</title>
- <link rel="stylesheet"
href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
- <link rel="stylesheet" href="/fling/assets/css/fling.css"/>
+ <title>SIMPLE PAGE</title>
+ <link rel="stylesheet"
href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
+ <link rel="stylesheet" href="../../../../assets/css/fling.css"/>
+ <script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
type="text/javascript"></script>
+ <script
src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"
type="text/javascript"></script>
</head>
<body>
<div class="container">
<nav class="nav-main">
<div class="pull-left">
- <div
th:replace="/apps/fling/page/fragments/navigation.html::breadcrumb"></div>
+ <ul class="breadcrumb" style="direction: rtl"
th:replace="/apps/fling/page/fragments/navigation.html::breadcrumb">
+ <li class="active dropdown">
+ <span>2rd BAR</span>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" role="button"
data-toggle="dropdown"><span class="caret"></span></a>
+ <a href="#">1st FOO</a>
+ <ul class="dropdown-menu" role="menu">
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">1st FOO CHILD</a></li>
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">2nd FOO CHILD</a></li>
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">3rd FOO CHILD</a></li>
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">4th FOO CHILD</a></li>
+ </ul>
+ </li>
+ </ul>
</div>
- <div
th:replace="/apps/fling/page/fragments/navigation.html::children"></div>
+ <ul class="nav nav-pills" role="tablist"
th:replace="/apps/fling/page/fragments/navigation.html::children">
+ <li><a href="../user/html.html">3rd BAZ</a></li>
+ </ul>
</nav>
<div class="panel panel-primary">
<div class="panel-heading">
- <span th:text="${page.title}"></span>
+ <span th:text="${page.title}">SIMPLE PAGE</span>
</div>
<div class="panel-body">
- <div th:utext="${page.content}"></div>
- <img src="/fling/assets/images/feather.png" width="355" height="111"/>
+ <div th:utext="${page.content}"><p>Lorem ipsum dolor sit amet,
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
et dolore magna aliquyam erat, sed diam voluptua.</p><pre>At vero eos et
accusam et justo duo dolores et ea rebum.</pre></div>
+ <img src="../../../../assets/images/feather.png" width="355"
height="111" th:attr="src='/fling/assets/images/feather.png'"/>
</div>
<div class="panel-footer"
th:replace="/apps/fling/page/fragments/panel.html::footer">
<span>user | auth type</span>
</div>
</div>
</div>
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
type="text/javascript"></script>
-<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"
type="text/javascript"></script>
</body>
</html>
Modified:
sling/trunk/samples/fling/src/main/resources/apps/fling/page/user/html.html
URL:
http://svn.apache.org/viewvc/sling/trunk/samples/fling/src/main/resources/apps/fling/page/user/html.html?rev=1625935&r1=1625934&r2=1625935&view=diff
==============================================================================
--- sling/trunk/samples/fling/src/main/resources/apps/fling/page/user/html.html
(original)
+++ sling/trunk/samples/fling/src/main/resources/apps/fling/page/user/html.html
Thu Sep 18 10:39:36 2014
@@ -19,48 +19,72 @@
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
th:with="page=${resource.adaptTo(@org.apache.sling.samples.fling.UserPage@class)}">
-<head>
+<head th:replace="/apps/fling/page/fragments/head.html::default">
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <title th:text="${page.title}">Page Title</title>
- <link rel="stylesheet"
href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
- <link rel="stylesheet" href="/fling/assets/css/fling.css"/>
+ <title>USER PAGE</title>
+ <link rel="stylesheet"
href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
+ <link rel="stylesheet" href="../../../../assets/css/fling.css"/>
+ <script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
type="text/javascript"></script>
+ <script
src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"
type="text/javascript"></script>
</head>
<body>
<div class="container">
<nav class="nav-main">
<div class="pull-left">
- <div
th:replace="/apps/fling/page/fragments/navigation.html::breadcrumb"></div>
+ <ul class="breadcrumb" style="direction: rtl"
th:replace="/apps/fling/page/fragments/navigation.html::breadcrumb">
+ <li class="active dropdown">
+ <span>2rd BAR</span>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" role="button"
data-toggle="dropdown"><span class="caret"></span></a>
+ <a href="../simple/html.html">1st FOO</a>
+ <ul class="dropdown-menu" role="menu">
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">1st FOO CHILD</a></li>
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">2nd FOO CHILD</a></li>
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">3rd FOO CHILD</a></li>
+ <li role="presentation"><a role="menuitem" tabindex="-1"
href="../simple/html.html">4th FOO CHILD</a></li>
+ </ul>
+ </li>
+ </ul>
</div>
- <div
th:replace="/apps/fling/page/fragments/navigation.html::children"></div>
+ <ul class="nav nav-pills" role="tablist"
th:replace="/apps/fling/page/fragments/navigation.html::children">
+ <li><a href="../user/html.html">3rd BAZ</a></li>
+ </ul>
</nav>
<div class="panel panel-primary">
<div class="panel-heading">
- <span th:text="${page.title}"></span>
+ <span th:text="${page.title}">USER PAGE</span>
</div>
<div class="panel-body" th:with="user=${page.user}">
<form role="form">
<div class="form-group">
<label>User ID of current JCR session</label>
- <input type="text" class="form-control" readonly="readonly"
th:attr="value=${user.getID()}"/>
+ <input type="text" class="form-control" readonly="readonly"
value="dummy" th:attr="value=${user.getID()}"/>
</div>
<div class="form-group">
<label>principal name</label>
- <input type="text" class="form-control" readonly="readonly"
th:attr="value=${user.getPrincipal().getName()}"/>
+ <input type="text" class="form-control" readonly="readonly"
value="dummy" th:attr="value=${user.getPrincipal().getName()}"/>
</div>
<div class="form-group" th:each="property : ${page.userProperties}">
<label th:text="${property.key}">key</label>
- <input type="text" class="form-control" readonly="readonly"
th:attr="value=${property.value}"/>
+ <input type="text" class="form-control" readonly="readonly"
value="value" th:attr="value=${property.value}"/>
+ </div>
+ <div class="form-group" th:remove="all">
+ <label>firstName</label>
+ <input type="text" class="form-control" readonly="readonly"
value="Foo"/>
+ </div>
+ <div class="form-group" th:remove="all">
+ <label>lastName</label>
+ <input type="text" class="form-control" readonly="readonly"
value="Bar"/>
</div>
</form>
- <img src="/fling/assets/images/feather.png" width="355" height="111"/>
+ <img src="../../../../assets/images/feather.png" width="355"
height="111" th:attr="src='/fling/assets/images/feather.png'"/>
</div>
<div class="panel-footer"
th:replace="/apps/fling/page/fragments/panel.html::footer">
<span>user | auth type</span>
</div>
</div>
</div>
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
type="text/javascript"></script>
-<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"
type="text/javascript"></script>
</body>
</html>
Modified: sling/trunk/samples/fling/src/main/resources/content/fling.json
URL:
http://svn.apache.org/viewvc/sling/trunk/samples/fling/src/main/resources/content/fling.json?rev=1625935&r1=1625934&r2=1625935&view=diff
==============================================================================
--- sling/trunk/samples/fling/src/main/resources/content/fling.json (original)
+++ sling/trunk/samples/fling/src/main/resources/content/fling.json Thu Sep 18
10:39:36 2014
@@ -19,7 +19,7 @@
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "fling:page:simple",
"title": "Sling Scripting Thymeleaf",
- "content": "<p><em>Sling Scripting Thymeleaf</em> with <em>Sling
Models</em> and <code>adaptTo()</code> to render resources:</p><pre><html
xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\"\n
th:with=\"page=${resource.adaptTo(@org.apache.sling.samples.fling.Page@class)}\">\n<head>\n
<meta charset=\"UTF-8\"/>\n <meta name=\"viewport\"
content=\"width=device-width, initial-scale=1.0\"/>\n <title
th:text=\"${page.title}\">Page Title</title>\n[...]</pre><p><em>Sling
Scripting Thymeleaf</em> with <em>Sling i18n</em> for localized
messages:</p><pre><a href=\"/system/sling/logout.html\"
th:text=\"#{action.logout}\">logout</a></pre><pre>{\n \"en\": {\n
\"jcr:mixinTypes\": [\n \"mix:language\"\n ],\n
\"jcr:language\": \"en\",\n \"sling:basename\":
\"org.apache.sling.samples.fling\",\n \"action.logout\": {\n
\"jcr:primaryType\": \"sling:MessageEntry\",\n \
"sling:key\": \"action.logout\",\n \"sling:message\": \"logout\"\n
},\n [...]\n }\n}\n</pre>"
+ "content": "<p><em>Sling Scripting Thymeleaf</em> with <em>Sling
Models</em> and <code>adaptTo()</code> to render resources:</p><pre><html
xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\"\n
th:with=\"page=${resource.adaptTo(@org.apache.sling.samples.fling.Page@class)}\">\n<head>\n
<meta charset=\"UTF-8\"/>\n <meta name=\"viewport\"
content=\"width=device-width, initial-scale=1.0\"/>\n <title
th:text=\"${page.title}\">Page Title</title>\n[...]</pre><p><em>Sling
Scripting Thymeleaf</em> with <em>Sling i18n</em> for localized
messages:</p><pre><a href=\"/system/sling/logout\"
th:text=\"#{action.logout}\">logout</a></pre><pre>{\n \"en\": {\n
\"jcr:mixinTypes\": [\n \"mix:language\"\n ],\n
\"jcr:language\": \"en\",\n \"sling:basename\":
\"org.apache.sling.samples.fling\",\n \"action.logout\": {\n
\"jcr:primaryType\": \"sling:MessageEntry\",\n \"slin
g:key\": \"action.logout\",\n \"sling:message\": \"logout\"\n
},\n [...]\n }\n}\n</pre>"
},
"auth": {
"jcr:primaryType": "nt:unstructured",