Skip to content

Commit

Permalink
novo helper para auxiliar a criacao de slugs adicionado. Adicionado t…
Browse files Browse the repository at this point in the history
…ambem slug nas paginas
  • Loading branch information
Demetrius F. Campos committed May 14, 2012
1 parent b4044e1 commit accc685
Show file tree
Hide file tree
Showing 19 changed files with 90 additions and 41 deletions.
3 changes: 2 additions & 1 deletion WebContent/WEB-INF/classes/umake_pages.hbm.xml
Expand Up @@ -15,7 +15,8 @@
<property name="dateOfRegistration" update="false"></property>
<property name="status"></property>
<property name="title"></property>
<property name="author"></property>
<property name="slug"></property>
<property name="author" update="false"></property>
<property name="content"></property>

</class>
Expand Down
5 changes: 3 additions & 2 deletions WebContent/WEB-INF/jsp/adm/index.jsp
Expand Up @@ -20,15 +20,16 @@

<ul>

<li><a href="<c:url value="/" />">Ir para o site</a></li>
<li><a href="<c:url value="/adm/user/logout" />">Logout</a></li>
<li><a href="<c:url value="/adm/user/create" />">Criar Usuário</a></li>
<li><a href="<c:url value="/adm/user" />">Listar Usuário</a></li>
<li><a href="<c:url value="/adm/user" />">Listar Usuários</a></li>
<li><a href="<c:url value="/adm/group/create" />">Criar Grupo</a></li>
<li><a href="<c:url value="/adm/group" />">Listar Grupos</a></li>
<li><a href="<c:url value="/adm/permission/create" />">Criar Permissão</a></li>
<li><a href="<c:url value="/adm/permission" />">Listar Permissões</a></li>
<li><a href="<c:url value="/adm/page/create" />">Criar página</a></li>
<li><a href="<c:url value="/adm/page" />">Listar página</a></li>
<li><a href="<c:url value="/adm/page" />">Listar páginas</a></li>

</ul>

Expand Down
4 changes: 3 additions & 1 deletion WebContent/WEB-INF/jsp/page/formPage.jsp
Expand Up @@ -20,7 +20,9 @@
<table>
<tr>
<td>Status: </td>
<td><label for="ativado">Ativado:</label><input type="radio" name="page.status" id="ativado" value="1" /> <label for="desativado">Desativado:</label><input type="radio" name="page.status" id="desativado" value="0" /> </td>
<td>
<label for="ativado">Ativado:</label><input type="radio" name="page.status" id="ativado" <c:if test="${page.status || page.status == null }">checked="checked"</c:if> value="1" />
<label for="desativado">Desativado:</label><input type="radio" name="page.status" id="desativado" <c:if test="${ !page.status || page.status == null }">checked="checked"</c:if> value="0" /> </td>
</tr>
<tr>
<td>Título: </td>
Expand Down
4 changes: 3 additions & 1 deletion WebContent/admin/js/functions.js
Expand Up @@ -125,6 +125,7 @@ $(function(){
dataType: 'json',
colModel : [
{display: 'Id', name : 'id', width : 45, sortable : true, align: 'left'},
{display: 'Título', name : 'title', width : 210, sortable : true, align: 'left'},
{display: 'Autor', name : 'author', width : 210, sortable : true, align: 'left'},
{display: 'Data do registro', name : 'dateOfRegistration', width : 210, sortable : true, align: 'left'}
],
Expand All @@ -143,6 +144,7 @@ $(function(){
],
searchitems : [
{display: 'Id', name : 'id'},
{display: 'Título', name : 'title'},
{display: 'Autor', name : 'author'}
],
sortname: "id",
Expand All @@ -154,7 +156,7 @@ $(function(){
resizable: false,
showTableToggleBtn: true,
singleSelect: true,
width: 520,
width: 730,
height: 200
});

Expand Down
Expand Up @@ -11,7 +11,7 @@
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
import br.com.umake.dao.AdmGroupDao;
import br.com.umake.helper.FlexiGridJson;
import br.com.umake.helper.flexigrid.FlexiGridJson;
import br.com.umake.model.AdmGroup;
import br.com.umake.permissions.PermissionAnnotation;
import br.com.umake.permissions.PermissionType;
Expand Down
Expand Up @@ -11,7 +11,7 @@
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
import br.com.umake.dao.AdmPermissionDao;
import br.com.umake.helper.FlexiGridJson;
import br.com.umake.helper.flexigrid.FlexiGridJson;
import br.com.umake.model.AdmPermission;
import br.com.umake.permissions.PermissionAnnotation;
import br.com.umake.permissions.PermissionType;
Expand Down
Expand Up @@ -17,7 +17,7 @@
import br.com.umake.dao.AdmGroupDao;
import br.com.umake.dao.AdmPermissionDao;
import br.com.umake.dao.AdmUserDao;
import br.com.umake.helper.FlexiGridJson;
import br.com.umake.helper.flexigrid.FlexiGridJson;
import br.com.umake.interceptor.AdmUserControl;
import br.com.umake.model.AdmGroup;
import br.com.umake.model.AdmPermission;
Expand Down
17 changes: 9 additions & 8 deletions src/main/java/br/com/umake/controller/IndexController.java
Expand Up @@ -5,6 +5,7 @@
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
import br.com.umake.model.Application;
import br.com.umake.model.Page;

@Resource
public class IndexController {
Expand All @@ -19,20 +20,20 @@ public IndexController(Result result, Application application){

}

//@Get("/")
public void index(){
@Get("/")
public void index(String pageOrCategory, String complement ){

//this.result.forwardTo("/WEB-INF/jsp/index.jsp");
this.result.use(Results.http()).body("inicial");
this.result.use(Results.http()).body(pageOrCategory+" - "+complement);


}

//@Get({"/{namePage}", "/{namePage}/{teste}"})
public void page(String namePage, String teste ){
this.result.use(Results.http()).body(namePage+" "+teste);
@Get("/{page.slug}")
public void page(Page page){

this.result.use(Results.http()).body(page.getSlug());

}

}
14 changes: 8 additions & 6 deletions src/main/java/br/com/umake/controller/PageController.java
Expand Up @@ -13,7 +13,8 @@
import br.com.caelum.vraptor.ioc.RequestScoped;
import br.com.caelum.vraptor.view.Results;
import br.com.umake.dao.PageDao;
import br.com.umake.helper.FlexiGridJson;
import br.com.umake.helper.flexigrid.FlexiGridJson;
import br.com.umake.helper.utils.TextHelper;
import br.com.umake.interceptor.AdmUserControl;
import br.com.umake.model.Page;
import br.com.umake.permissions.PermissionAnnotation;
Expand Down Expand Up @@ -73,21 +74,22 @@ public void create(Page page) {

page.setDateOfRegistration( new Date() );
page.setAuthor(this.admUserControl.getUserAdm().getName());
page.setSlug(TextHelper.createSlug(page.getTitle()));

System.out.println(page.getAuthor()+page.getContent()+page.getTitle()+page.getDateOfRegistration()+page.getStatus());
this.result.include("retorno", this.pageDao.insert(page) );
this.result.include("tipoSubmit", "cadastrado" );

this.result.include("page", page);
this.result.include("page", page);

this.result.redirectTo(this).formPage();

}

@Put("adm/page")
@Restrictable(permissions={ @PermissionAnnotation(context="ADM_PAGE", permissionsTypes = { PermissionType.EDIT})})
public void editAdmGroup(final Page page){

public void edit(final Page page){

page.setSlug(TextHelper.createSlug(page.getTitle()));

this.result.include("retorno", this.pageDao.edit(page) );
this.result.include("tipoSubmit", "editado" );
this.result.include("page", this.pageDao.get(page));
Expand Down
@@ -1,4 +1,4 @@
package br.com.umake.helper;
package br.com.umake.helper.flexigrid;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
@@ -1,4 +1,4 @@
package br.com.umake.helper;
package br.com.umake.helper.flexigrid;

import java.lang.reflect.Field;
import java.util.ArrayList;
Expand Down Expand Up @@ -59,7 +59,7 @@ private int getTotalFieldsAnnotedWithColumn(Field[] fields){

for (Field field : fields){

if(field.isAnnotationPresent(br.com.umake.helper.Column.class))
if(field.isAnnotationPresent(br.com.umake.helper.flexigrid.Column.class))
totalFieldsWithAnnotationColumn++;

}
Expand All @@ -74,7 +74,7 @@ private String getNameColumnId(List<T> rows){

for (Field field : fields) {

if(field.isAnnotationPresent(br.com.umake.helper.Id.class)){
if(field.isAnnotationPresent(br.com.umake.helper.flexigrid.Id.class)){

return field.getName();

Expand Down Expand Up @@ -103,9 +103,9 @@ private List<String> getAttWillBeListed(List<T> rows) throws Exception{

for (Field field : fields){

if(field.isAnnotationPresent(br.com.umake.helper.Column.class)){
if(field.isAnnotationPresent(br.com.umake.helper.flexigrid.Column.class)){

Column column = field.getAnnotation(br.com.umake.helper.Column.class);
Column column = field.getAnnotation(br.com.umake.helper.flexigrid.Column.class);

if( column.position() <= minOfTheLoop && !fieldsMappeds.contains(field.getName()) ){

Expand Down
@@ -1,4 +1,4 @@
package br.com.umake.helper;
package br.com.umake.helper.flexigrid;

import java.util.List;

Expand Down
@@ -1,4 +1,4 @@
package br.com.umake.helper;
package br.com.umake.helper.flexigrid;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
23 changes: 23 additions & 0 deletions src/main/java/br/com/umake/helper/utils/TextHelper.java
@@ -0,0 +1,23 @@
package br.com.umake.helper.utils;

public final class TextHelper {

public static String createSlug( String originalForm ){

String generateSlug = originalForm.replaceAll("[ÁáÀàÃãÂâÄä]", "a");
generateSlug = generateSlug.replaceAll("[ÉéÈèÊêËë]", "e");
generateSlug = generateSlug.replaceAll("[ÍíÌìÎîÏï]", "i");
generateSlug = generateSlug.replaceAll("[ÓóÒòÕõÔôÖö]", "o");
generateSlug = generateSlug.replaceAll("[ÚúÙùÛûÜü]", "u");
generateSlug = generateSlug.replaceAll("[Ññ]", "n");
generateSlug = generateSlug.replaceAll("[Çç]", "c");
generateSlug = generateSlug.replaceAll("[ÿÝý]", "y");
generateSlug = generateSlug.replaceAll("[ª]", "a.");
generateSlug = generateSlug.replaceAll("[º]", "o.");
generateSlug = generateSlug.replaceAll("(\\s)++", "-");

return generateSlug;

}

}
4 changes: 2 additions & 2 deletions src/main/java/br/com/umake/model/AdmGroup.java
Expand Up @@ -6,8 +6,8 @@
import java.util.Set;

import br.com.caelum.vraptor.ioc.Component;
import br.com.umake.helper.Column;
import br.com.umake.helper.Id;
import br.com.umake.helper.flexigrid.Column;
import br.com.umake.helper.flexigrid.Id;

@Component
public class AdmGroup{
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/br/com/umake/model/AdmPermission.java
Expand Up @@ -6,8 +6,8 @@
import java.util.Set;

import br.com.caelum.vraptor.ioc.Component;
import br.com.umake.helper.Column;
import br.com.umake.helper.Id;
import br.com.umake.helper.flexigrid.Column;
import br.com.umake.helper.flexigrid.Id;

@Component
public class AdmPermission {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/br/com/umake/model/AdmUser.java
Expand Up @@ -9,8 +9,8 @@
import java.util.Set;

import br.com.caelum.vraptor.ioc.Component;
import br.com.umake.helper.Column;
import br.com.umake.helper.Id;
import br.com.umake.helper.flexigrid.Column;
import br.com.umake.helper.flexigrid.Id;

@Component
public class AdmUser implements Serializable {
Expand Down
24 changes: 20 additions & 4 deletions src/main/java/br/com/umake/model/Page.java
Expand Up @@ -5,20 +5,22 @@
import java.util.Date;

import br.com.caelum.vraptor.ioc.Component;
import br.com.umake.helper.Column;
import br.com.umake.helper.Id;
import br.com.umake.helper.flexigrid.Column;
import br.com.umake.helper.flexigrid.Id;

@Component
public class Page {

@Column(position=1)
@Id
private Long id;
@Column(position=3)
@Column(position=4)
private Date dateOfRegistration;
private Boolean status;
private String title;
@Column(position=2)
private String title;
private String slug;
@Column(position=3)
private String author;
private String content;

Expand Down Expand Up @@ -68,6 +70,14 @@ public String getTitle(){

}

public String getSlug(){


return this.slug;

}


public String getAuthor(){

return this.author;
Expand Down Expand Up @@ -101,6 +111,12 @@ public void setStatus( Boolean status ){
public void setTitle( String title ){

this.title = title;

}

public void setSlug(String slug){

this.slug = slug;

}

Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/umake_pages.hbm.xml
Expand Up @@ -15,7 +15,8 @@
<property name="dateOfRegistration" update="false"></property>
<property name="status"></property>
<property name="title"></property>
<property name="author"></property>
<property name="slug"></property>
<property name="author" update="false"></property>
<property name="content"></property>

</class>
Expand Down

0 comments on commit accc685

Please sign in to comment.