Commits

Frédéric Delorme committed 2bec3b0

- Move page template to controller named sub-folder into the "templates"
path.
- Modify Service Manager to instantiate Authenticate interfaced classes.
- Modify POM artifact version.

Comments (0)

Files changed (12)

framework/pom.xml

 	<groupId>fr.mcgivrer.framework.web.easywebapp</groupId>
 	<artifactId>framework</artifactId>
 	<name>E@syWebApp Framework</name>
-	<version>0.0.6-SNAPSHOT</version>
+	<version>0.1.0-SNAPSHOT</version>
 	<packaging>jar</packaging>
 
 	<properties>

framework/src/main/java/fr/mcgivrer/framework/web/engine/services/ServiceManager.java

 import org.reflections.util.ConfigurationBuilder;
 
 import fr.mcgivrer.framework.web.engine.configuration.modules.routes.RoutesGroup;
+import fr.mcgivrer.framework.web.engine.services.authentication.Authentication;
 import fr.mcgivrer.framework.web.engine.services.authentication.impl.Context;
 
 /**
 						ClasspathHelper
 								.forPackage(RoutesGroup.FRAMEWORK_PCK_BASE_CONTROLLER))
 				.addUrls(ClasspathHelper.forClass(Service.class))
+				.addUrls(ClasspathHelper.forClass(Authentication.class))
 				.setScanners(new ResourcesScanner(),
 						new TypeAnnotationsScanner(), new SubTypesScanner());
 

framework/src/main/java/fr/mcgivrer/framework/web/engine/services/authentication/impl/BasicAuthentication.java

 	 */
 	public void init() {
 		// Load users from the properties file.
+		String realPath = BasicAuthentication.class.getClass().getResource("/").getPath();
 		Properties usersFile = PropertiesLoader
-				.load("configuration/users.properties");
+				.load(realPath+"configuration/users.properties");
 		String value = "";
 		for (Object propKey : usersFile.keySet()) {
 			value = (String) usersFile.getProperty((String) propKey);
     <groupId>fr.mcgivrer.framework.web.easywebapp</groupId>
     <artifactId>easywebapp</artifactId>
     <packaging>pom</packaging>
-    <version>1.0-SNAPSHOT</version>
+    <version>0.1.0-SNAPSHOT</version>
 
     <modules>
         <module>framework</module>

samples/games/pom.xml

 	<groupId>fr.mcgivrer.framework.web.easywebapp.samples</groupId>
 	<artifactId>games</artifactId>
 	<name>games</name>
-	<version>0.0.6-SNAPSHOT</version>
+	<version>0.1.0-SNAPSHOT</version>
 	<packaging>war</packaging>
 
 	<properties>

samples/games/src/main/java/fr/mcgivrer/framework/web/application/controllers/Application.java

 		List<Post> posts = postDao.findAll();
 		bind("posts", posts);
 
-		return "index";
+		return "application/index";
 	}
 
 	/**
 		}
 		bind("posts", posts);
 
-		return "show";
+		return "application/show";
 	}
 
 	/**
 		List<Post> posts = postDao.findByCategory(categoryId);
 		bind("posts", posts);
 
-		return "index";
+		return "application/index";
 	}
 
 	/**
 		List<Post> posts = postDao.findByGameType(gameTypeId);
 		bind("posts", posts);
 
-		return "index";
+		return "application/index";
 	}
 
 	/**
 		List<Category> categories = categoryDao.findAll();
 		bind("categories", categories);
 
-		return "index";
+		return "application/index";
 	}
 
 	/**
 				categoryDao.findById(Long.parseLong("1")), new Date(), "x360",
 				new String[] { "Adventure", "Action" });
 		bind("post", post);
-		return "create";
+		return "application/create";
 	}
 
 	/**
 	public String save() {
 		Post post = (Post) FormInput.getEntity(request, "post", Post.class);
 		bind("post", post);
-		return "create";
+		return "application/create";
 	}
 }

samples/games/src/main/resources/templates/application/create.xhtml

+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title>${messages.get("app.title")}</title>
+		<link rel="icon" type="image/png" href="/media/icons/easywebapp.png" />
+		<link href="/css/screen.css" rel="stylesheet" media="screen" />
+		<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>
+		<script type="text/javascript" src="/js/easywebapp.js"></script>
+	</head>
+	<body>
+		<div class="page">
+			<header>
+				<h1><a href="/app/application/index">${messages.get("app.title")}</a></h1>
+				<p>${messages.get("app.section.title")}</p>
+			</header>
+			<div class="content">
+				<section id="posts">
+					<article>
+						${form.begin("application/save")}
+						${form.add("post.id","hidden",post.id)}
+						${form.add("post.title","text", post.title,"app.post.title.label",[class:"red",onclick:"alert('coucou !');"])}
+						${form.add("post.header","textarea",post.header,"app.post.header.label",[cols:"50",rows:"5"])}
+						${form.add("post.content","textarea",post.content,"app.post.content.label",[cols:"50",rows:"20"])}
+						${form.add("action","button",messages.get("app.form.cancel.label"))}
+						${form.add("action","submit",messages.get("app.form.save.label"))}
+						${form.end()}
+					</article>
+				</section>
+			</div>
+			<footer>
+				<p>${messages.get("app.footer")}</p>
+			</footer>
+		</div>
+	</body>
+</html>

samples/games/src/main/resources/templates/application/index.xhtml

+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="utf-8" />
+		<title>${messages.get("app.title")}</title>
+		<link rel="icon" type="image/png" href="/media/icons/easywebapp.png" />
+		<link type="text/css" href="/css/screen.css" media="screen"
+			rel="stylesheet" />
+		<link
+			href='http://fonts.googleapis.com/css?family=Economica:400,700|Maiden+Orange|Syncopate|Gravitas+One|Homenaje'
+			rel='stylesheet' type='text/css'>
+		<link type="text/css" href="css/smoothness/jquery-ui-1.8.21.custom.css"
+			rel="stylesheet" />
+		<link type="text/css" href="/css/jquery.lightbox-0.5.css" media="screen"
+			rel="stylesheet" />
+		<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>
+		<script type="text/javascript" src="/js/jquery-ui-1.8.21.custom.min.js"></script>
+		<script type="text/javascript" src="/js/jquery.lightbox-0.5.js"></script>
+		<script type="text/javascript" src="/js/easywebapp.js"></script>
+		<!--[if IE]>
+			<script type="text/javascript">
+			(function(){
+			      var html5elmeents = "address|article|aside|audio|canvas|command|datalist|details|dialog|figure|figcaption|footer|header|hgroup|keygen|mark|meter|menu|nav|progress|ruby|section|time|video".split('|');
+			      for(var i = 0; i < html5elmeents.length; i++){
+							document.createElement(html5elmeents[i]);
+						}
+					}
+			);
+			</script>
+		<![endif]-->
+	</head>
+	<body>
+		<div class="page">
+			<header>
+				<div class="user">
+					<div class="avatar"></div>
+					<p class="username">McGivrer</p>
+					<p class="usersn">(Frédéric Delorme)</p>
+					<p class="role">Administrateur</p>
+					<ul class="tools">
+						<li><a class="button" href="/preferences" accesskey="p"><em>P</em>références</a></li>
+						<li><a class="button" href="/admin" accesskey="a"><em>A</em>dministration</a></li>
+						<li><a class="button" href="/logout" accesskey="l"><em>L</em>ogout</a></li>
+					</ul>
+				</div>
+				<h1>
+					<a href="/app/application/index">${messages.get("app.title")}</a>
+				</h1>
+				<p>${messages.get("app.section.title")}</p>
+				<div class="clear"></div>
+				<% if(categories!=null && categories.size()){ %>
+				<nav class="main-nav">
+					<ul>
+						<li class="<%= (categoryId==0?"selected":"")%>"><a
+							href="/app/application/index" title="${messages.get("app.home.title")}">${messages.get("app.home.label")}</a>
+						</li> <% for (category in categories) { %>
+						<li<%= (categoryId==category.id?" class=\"selected\"":"")%>><a
+							href="/app/application/category?categoryId=${category.id}"
+							title="${category.label}">${category.title}</a>
+						</li> <% }%>
+					</ul>
+				</nav>
+				<% } %>
+				<nav class="crumb-bar">
+					<ul>
+						<li><a href="/app/application/index"
+							title="Retour à la page d'accueil">Home</a></li>
+					</ul>
+				</nav>
+			</header>
+			<section class="content">
+				<aside class="covers media">
+					<h3>${messages.get("app.show.posts.title")}</h3>
+					<% if(posts!=null){ %>
+					<ul class="vtools nologo">
+						<%for ( item in posts) { %>
+						<li><a href="/app/application/show?postId=${item.id}">${item.id}.${item.title}</a></li><%
+						} %>
+					</ul>
+					<% } else{ %>
+					<div class="message">
+						<p>${messages.get("app.posts.empty")}</p>
+					</div>
+					<% } %>
+				</aside>
+				<aside class="refs media right">
+					<div class="block">
+						<!-- TODO implement Platformes management -->
+						<h3>Plateformes</h3>
+						<ul class="vtools">
+						<% for ( platform in platforms) { %>
+							<li><a href="/app/application/platform?platformId=${platform.id}" <%= (platformId==platform.id?"class=\"selected\"":""); %> >${platform.title}</a></li>
+						<% } %>
+						</ul>
+						<!-- TODO implement Types management -->
+						<h3>Types</h3>
+						<ul class="vtools">
+						
+						<% for ( gameType in gameTypes) { %>
+							<li><a href="/app/application/type?platformId=${gameType.id}" <%= (gameTypeId==gameType.id?"class=\"selected\"":""); %> >${gameType.title}</a></li>
+						<% } %>
+						</ul>
+					</div>
+				</aside>
+				<% if(posts!=null && posts.size()>0) { %>
+				<section id="posts">
+					<%for ( post in posts) { %>
+					<article>
+						<h2><a href="/app/application/show?postId=${post.id}">${post.id}.${post.title}</a></h2>
+						<ul class="tags">
+							<li><a class="tag-mini" href="platform/${post.plateform}">${post.plateform}</a></li><% for (gt in post.gameTypes) { %><li><a class="tag-mini" href="type/${gt.toLowerCase()}">${gt}</a></li><% } %>
+						</ul>
+						<div class="header">${post.header}</div>
+						<div class="info">
+							<a href="/app/users/show?id=${post.author.id}"
+								title="${post.author.firstName} ${post.author.lastName} ">${post.author.userName}</a>
+							/ ${post.createdAt.format("dd/MM/yyyy")}
+						</div>
+					</article>
+					<% } %>
+				</section>
+				<% } else{ %>
+				<div class="message">
+					<p>${messages.get("app.posts.empty")}</p>
+				</div>
+				<% } %>
+			</section>
+			<footer>
+				<p>${messages.get("app.footer")}</p>
+			</footer>
+		</div>
+	</body>
+</html>

samples/games/src/main/resources/templates/application/show.xhtml

+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<title>${messages.get("app.title")}</title>
+<link rel="icon" type="image/png" href="/media/icons/easywebapp.png" />
+<link href="/css/screen.css" rel="stylesheet" media="screen" />
+<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>
+</head>
+<body>
+	<div class="page">
+		<header>
+			<div class="user">
+				<div class="avatar"></div>
+				<p class="username">McGivrer</p>
+				<p class="usersn">(Frédéric Delorme)</p>
+				<p class="role">Administrateur</p>
+				<ul class="tools">
+					<li><a class="button" href="/preferences" accesskey="p"><u>P</u>références</a></li>
+					<li><a class="button" href="/admin" accesskey="a"><u>A</u>dministration</a></li>
+					<li><a class="button" href="/logout" accesskey="l"><u>L</u>ogout</a></li>
+				</ul>
+			</div>
+			<h1>
+				<a href="/app/application/index">${messages.get("app.title")}</a>
+			</h1>
+			<p>${messages.get("app.section.title")}</p>
+			<div class="clear"></div>
+			<% if(categories!=null && categories.size()){ %>
+			<nav class="main-nav">
+				<ul>
+					<li<%= (categoryId==0?" class=\"selected\"":"")%>><a href="/app/application/index" title="${messages.get("app.home.title")}">${messages.get("app.home.label")}</a>
+					</li> <% for (category in categories) { %><li<%= (categoryId==category.id?" class=\"selected\"":"")%>><a href="/app/application/category?categoryId=${category.id}" title="${category.label}">${category.title}</a></li><% }%>
+				</ul>
+			</nav>
+			<% } %>
+			<nav class="crumb-bar">
+				<ul>
+					<li><a href="/app/application/index" title="Retour à la page d'accueil">Home</a></li>
+				</ul>
+			</nav>
+		</header>
+		<section class="content">
+			<aside class="covers media">
+				<h3>${messages.get("app.show.posts.title")}</h3>
+				<% if(posts!=null){ %>
+				<ul class="vtools nologo">
+					<%for ( item in posts) { %>
+					<li><a ${(post.id==item.id?" class=\"selected\"":"")}href="/app/application/show?postId=${item.id}">${item.id}.${item.title}</a></li><%
+					} %>
+				</ul>
+				<% } else{ %>
+				<div class="message">
+					<p>${messages.get("app.posts.empty")}</p>
+				</div>
+				<% } %>
+			</aside>
+			<section id="posts">
+				<article id="${post.id}">
+					<h1 class="logo ${post.plateform}">
+						<a href="/app/application/show?postId=${post.id}">#${post.id}.
+							${post.title}</a>
+					</h1>
+					<ul class="tags">
+						<li><a class="tag" href="platform?platformId=${post.plateform}">${post.plateform}</a></li><%for (gt in post.gameTypes) { %><li><a class="tag" href="type/${gt.toLowerCase()}">${gt}</a></li><% } %>
+					</ul>
+					<div class="header">${post.header}</div>
+					<div class="content">${post.content}</div>
+					<div class="info">
+						<a href="/app/users/show?id=${post.author.id}"
+							title="${post.author.firstName} ${post.author.lastName} ">${post.author.userName}</a>
+						/ ${post.createdAt.format("dd/MM/yyyy")}
+					</div>
+				</article>
+
+			</section>
+			<div class="clear"></div>
+			<footer>
+				<p>${messages.get("app.footer")}</p>
+			</footer>
+		</section>
+</body>
+</html>

samples/games/src/main/resources/templates/create.xhtml

-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset="UTF-8">
-		<title>${messages.get("app.title")}</title>
-		<link rel="icon" type="image/png" href="/media/icons/easywebapp.png" />
-		<link href="/css/screen.css" rel="stylesheet" media="screen" />
-		<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>
-		<script type="text/javascript" src="/js/easywebapp.js"></script>
-	</head>
-	<body>
-		<div class="page">
-			<header>
-				<h1><a href="/app/application/index">${messages.get("app.title")}</a></h1>
-				<p>${messages.get("app.section.title")}</p>
-			</header>
-			<div class="content">
-				<section id="posts">
-					<article>
-						${form.begin("application/save")}
-						${form.add("post.id","hidden",post.id)}
-						${form.add("post.title","text", post.title,"app.post.title.label",[class:"red",onclick:"alert('coucou !');"])}
-						${form.add("post.header","textarea",post.header,"app.post.header.label",[cols:"50",rows:"5"])}
-						${form.add("post.content","textarea",post.content,"app.post.content.label",[cols:"50",rows:"20"])}
-						${form.add("action","button",messages.get("app.form.cancel.label"))}
-						${form.add("action","submit",messages.get("app.form.save.label"))}
-						${form.end()}
-					</article>
-				</section>
-			</div>
-			<footer>
-				<p>${messages.get("app.footer")}</p>
-			</footer>
-		</div>
-	</body>
-</html>

samples/games/src/main/resources/templates/index.xhtml

-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset="utf-8" />
-		<title>${messages.get("app.title")}</title>
-		<link rel="icon" type="image/png" href="/media/icons/easywebapp.png" />
-		<link type="text/css" href="/css/screen.css" media="screen"
-			rel="stylesheet" />
-		<link
-			href='http://fonts.googleapis.com/css?family=Economica:400,700|Maiden+Orange|Syncopate|Gravitas+One|Homenaje'
-			rel='stylesheet' type='text/css'>
-		<link type="text/css" href="css/smoothness/jquery-ui-1.8.21.custom.css"
-			rel="stylesheet" />
-		<link type="text/css" href="/css/jquery.lightbox-0.5.css" media="screen"
-			rel="stylesheet" />
-		<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>
-		<script type="text/javascript" src="/js/jquery-ui-1.8.21.custom.min.js"></script>
-		<script type="text/javascript" src="/js/jquery.lightbox-0.5.js"></script>
-		<script type="text/javascript" src="/js/easywebapp.js"></script>
-		<!--[if IE]>
-			<script type="text/javascript">
-			(function(){
-			      var html5elmeents = "address|article|aside|audio|canvas|command|datalist|details|dialog|figure|figcaption|footer|header|hgroup|keygen|mark|meter|menu|nav|progress|ruby|section|time|video".split('|');
-			      for(var i = 0; i < html5elmeents.length; i++){
-							document.createElement(html5elmeents[i]);
-						}
-					}
-			);
-			</script>
-		<![endif]-->
-	</head>
-	<body>
-		<div class="page">
-			<header>
-				<div class="user">
-					<div class="avatar"></div>
-					<p class="username">McGivrer</p>
-					<p class="usersn">(Frédéric Delorme)</p>
-					<p class="role">Administrateur</p>
-					<ul class="tools">
-						<li><a class="button" href="/preferences" accesskey="p"><em>P</em>références</a></li>
-						<li><a class="button" href="/admin" accesskey="a"><em>A</em>dministration</a></li>
-						<li><a class="button" href="/logout" accesskey="l"><em>L</em>ogout</a></li>
-					</ul>
-				</div>
-				<h1>
-					<a href="/app/application/index">${messages.get("app.title")}</a>
-				</h1>
-				<p>${messages.get("app.section.title")}</p>
-				<div class="clear"></div>
-				<% if(categories!=null && categories.size()){ %>
-				<nav class="main-nav">
-					<ul>
-						<li class="<%= (categoryId==0?"selected":"")%>"><a
-							href="/app/application/index" title="${messages.get("app.home.title")}">${messages.get("app.home.label")}</a>
-						</li> <% for (category in categories) { %>
-						<li<%= (categoryId==category.id?" class=\"selected\"":"")%>><a
-							href="/app/application/category?categoryId=${category.id}"
-							title="${category.label}">${category.title}</a>
-						</li> <% }%>
-					</ul>
-				</nav>
-				<% } %>
-				<nav class="crumb-bar">
-					<ul>
-						<li><a href="/app/application/index"
-							title="Retour à la page d'accueil">Home</a></li>
-					</ul>
-				</nav>
-			</header>
-			<section class="content">
-				<aside class="covers media">
-					<h3>${messages.get("app.show.posts.title")}</h3>
-					<% if(posts!=null){ %>
-					<ul class="vtools nologo">
-						<%for ( item in posts) { %>
-						<li><a href="/app/application/show?postId=${item.id}">${item.id}.${item.title}</a></li><%
-						} %>
-					</ul>
-					<% } else{ %>
-					<div class="message">
-						<p>${messages.get("app.posts.empty")}</p>
-					</div>
-					<% } %>
-				</aside>
-				<aside class="refs media right">
-					<div class="block">
-						<!-- TODO implement Platformes management -->
-						<h3>Plateformes</h3>
-						<ul class="vtools">
-						<% for ( platform in platforms) { %>
-							<li><a href="/app/application/platform?platformId=${platform.id}" <%= (platformId==platform.id?"class=\"selected\"":""); %> >${platform.title}</a></li>
-						<% } %>
-						</ul>
-						<!-- TODO implement Types management -->
-						<h3>Types</h3>
-						<ul class="vtools">
-						
-						<% for ( gameType in gameTypes) { %>
-							<li><a href="/app/application/type?platformId=${gameType.id}" <%= (gameTypeId==gameType.id?"class=\"selected\"":""); %> >${gameType.title}</a></li>
-						<% } %>
-						</ul>
-					</div>
-				</aside>
-				<% if(posts!=null && posts.size()>0) { %>
-				<section id="posts">
-					<%for ( post in posts) { %>
-					<article>
-						<h2><a href="/app/application/show?postId=${post.id}">${post.id}.${post.title}</a></h2>
-						<ul class="tags">
-							<li><a class="tag-mini" href="platform/${post.plateform}">${post.plateform}</a></li><% for (gt in post.gameTypes) { %><li><a class="tag-mini" href="type/${gt.toLowerCase()}">${gt}</a></li><% } %>
-						</ul>
-						<div class="header">${post.header}</div>
-						<div class="info">
-							<a href="/app/users/show?id=${post.author.id}"
-								title="${post.author.firstName} ${post.author.lastName} ">${post.author.userName}</a>
-							/ ${post.createdAt.format("dd/MM/yyyy")}
-						</div>
-					</article>
-					<% } %>
-				</section>
-				<% } else{ %>
-				<div class="message">
-					<p>${messages.get("app.posts.empty")}</p>
-				</div>
-				<% } %>
-			</section>
-			<footer>
-				<p>${messages.get("app.footer")}</p>
-			</footer>
-		</div>
-	</body>
-</html>

samples/games/src/main/resources/templates/show.xhtml

-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="UTF-8">
-<title>${messages.get("app.title")}</title>
-<link rel="icon" type="image/png" href="/media/icons/easywebapp.png" />
-<link href="/css/screen.css" rel="stylesheet" media="screen" />
-<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>
-</head>
-<body>
-	<div class="page">
-		<header>
-			<div class="user">
-				<div class="avatar"></div>
-				<p class="username">McGivrer</p>
-				<p class="usersn">(Frédéric Delorme)</p>
-				<p class="role">Administrateur</p>
-				<ul class="tools">
-					<li><a class="button" href="/preferences" accesskey="p"><u>P</u>références</a></li>
-					<li><a class="button" href="/admin" accesskey="a"><u>A</u>dministration</a></li>
-					<li><a class="button" href="/logout" accesskey="l"><u>L</u>ogout</a></li>
-				</ul>
-			</div>
-			<h1>
-				<a href="/app/application/index">${messages.get("app.title")}</a>
-			</h1>
-			<p>${messages.get("app.section.title")}</p>
-			<div class="clear"></div>
-			<% if(categories!=null && categories.size()){ %>
-			<nav class="main-nav">
-				<ul>
-					<li<%= (categoryId==0?" class=\"selected\"":"")%>><a href="/app/application/index" title="${messages.get("app.home.title")}">${messages.get("app.home.label")}</a>
-					</li> <% for (category in categories) { %><li<%= (categoryId==category.id?" class=\"selected\"":"")%>><a href="/app/application/category?categoryId=${category.id}" title="${category.label}">${category.title}</a></li><% }%>
-				</ul>
-			</nav>
-			<% } %>
-			<nav class="crumb-bar">
-				<ul>
-					<li><a href="/app/application/index" title="Retour à la page d'accueil">Home</a></li>
-				</ul>
-			</nav>
-		</header>
-		<section class="content">
-			<aside class="covers media">
-				<h3>${messages.get("app.show.posts.title")}</h3>
-				<% if(posts!=null){ %>
-				<ul class="vtools nologo">
-					<%for ( item in posts) { %>
-					<li><a ${(post.id==item.id?" class=\"selected\"":"")}href="/app/application/show?postId=${item.id}">${item.id}.${item.title}</a></li><%
-					} %>
-				</ul>
-				<% } else{ %>
-				<div class="message">
-					<p>${messages.get("app.posts.empty")}</p>
-				</div>
-				<% } %>
-			</aside>
-			<section id="posts">
-				<article id="${post.id}">
-					<h1 class="logo ${post.plateform}">
-						<a href="/app/application/show?postId=${post.id}">#${post.id}.
-							${post.title}</a>
-					</h1>
-					<ul class="tags">
-						<li><a class="tag" href="platform?platformId=${post.plateform}">${post.plateform}</a></li><%for (gt in post.gameTypes) { %><li><a class="tag" href="type/${gt.toLowerCase()}">${gt}</a></li><% } %>
-					</ul>
-					<div class="header">${post.header}</div>
-					<div class="content">${post.content}</div>
-					<div class="info">
-						<a href="/app/users/show?id=${post.author.id}"
-							title="${post.author.firstName} ${post.author.lastName} ">${post.author.userName}</a>
-						/ ${post.createdAt.format("dd/MM/yyyy")}
-					</div>
-				</article>
-
-			</section>
-			<div class="clear"></div>
-			<footer>
-				<p>${messages.get("app.footer")}</p>
-			</footer>
-		</section>
-</body>
-</html>