/impl/conf/language/MessageResourcesBlog.properties |
---|
28,3 → 28,16 |
blog.post.created.success=Post adicionado com sucesso |
blog.old.months=Meses Anteriores |
blog.confirm.delete=Tem a certeza que deseja apagar o Blog Selecionado? Todos os Posts serão apagados do Sistema. |
blog.deleted.success=Blog {0} apagado com sucesso. |
blog.deleted.fail=O Blog {0} não foi apagado, contacte a administração. |
blog.add.post=Adicionar POST |
blog.delete.post=Apagar POST |
blog.confirm.delete.post=Tem a certeza que deseja apagar o POST Selecionado? |
blog.post.deleted.success=POST {0} apagado com sucesso. |
blog.post.deleted.fail=O POST {0} não foi apagado, contacte a administração. |
/impl/conf/WEB-INF/struts/tiles-blog.xml |
---|
56,6 → 56,5 |
<put name="topnav" value="/user/serviceZone/topnavLoadBlogMonth.jsp"/> |
<put name="body" value="/public/blogs/blog.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/berserk/sd.xml |
---|
227,6 → 227,43 |
</filterChains> |
</service> |
<service> |
<name>EditBlog</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogService</implementationClass> |
<description>Edit a Blog</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<!--<chain name="Admins"/>--> |
<chain name="OwnersEdit"/> |
<!--<chain name="OwnersEditOnlyIfNotValid"/>--> |
<!--<chain name="ContextObjectTimer"/>--> |
<!--<chain name="ContextStaticTimerExample"/>--> |
</filterChains> |
</service> |
<service> |
<name>DeleteBlog</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.DeleteBlogService</implementationClass> |
<description>Delete an Blog</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="OwnersLoadBlog"/> |
</filterChains> |
</service> |
<service> |
<name>DeleteBlogPost</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.DeleteBlogPostService</implementationClass> |
<description>Delete a Post</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="OwnerBlogPost"/> |
</filterChains> |
</service> |
<service> |
<name>CreateBlogPost</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogPostService</implementationClass> |
<description>Create a Blog Post</description> |
247,9 → 284,24 |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="InternalBlog"/> |
<chain name="TargetRolesBlog"/> |
</filterChains> |
</service> |
<service> |
<name>LoadEditBlog</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass> |
<description>Load an Announcement view</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadIndex</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<!--<chain name="Admins"/>--> |
<chain name="OwnersLoadBlog"/> |
</filterChains> |
</service> |
<service> |
<name>LoadBlogByDate</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass> |
<description>Load a Blog in a specfied month and year</description> |
258,6 → 310,8 |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="InternalBlog"/> |
<chain name="TargetRolesBlog"/> |
</filterChains> |
</service> |
<service> |
293,32 → 347,9 |
<chain name="AuthenticatedUsers"/> |
</filterChains> |
</service> |
<service> |
<name>LoadBlogPostsByDate</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogPostsService</implementationClass> |
<description>Load BlogPosts in a given month</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadByDate</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<!--<chain name="TargetUsers"/>--> |
</filterChains> |
</service> |
<service> |
<name>LoadLastBlogPosts</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogPostsService</implementationClass> |
<description>Load last Blog Posts</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadLastPosts</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<!--<chain name="TargetUsers"/>--> |
</filterChains> |
</service> |
<!--CommonServices--> |
<service> |
<name>CommonServicesSearch</name> |
/impl/conf/berserk/fcd.xml |
---|
114,6 → 114,34 |
<invocationTiming>1</invocationTiming> |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
<filterChain> |
<name>InternalBlog</name> |
<expression>InternalObject("serializable","pt.estgp.estgweb.domain.BlogImpl")</expression> |
<description>Check if the object is internal</description> |
<invocationTiming>1</invocationTiming> |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
<filterChain> |
<name>TargetRolesBlog</name> |
<expression>TargetRoleUsersClass("serializable","pt.estgp.estgweb.domain.BlogImpl") || OwnerUsersClass("serializable","pt.estgp.estgweb.domain.BlogImpl")</expression> |
<description>Owner of an object Control Chain</description> |
<invocationTiming>1</invocationTiming> |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
<filterChain> |
<name>OwnersLoadBlog</name> |
<expression>OwnerUsersClass("serializable","pt.estgp.estgweb.domain.BlogImpl")</expression> |
<description>Owner of an object Control Chain</description> |
<invocationTiming>1</invocationTiming> |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
<filterChain> |
<name>OwnerBlogPost</name> |
<expression>OwnerUsersClass("serializable","pt.estgp.estgweb.domain.BlogPostImpl")</expression> |
<description>Owner of an object Control Chain</description> |
<invocationTiming>1</invocationTiming> |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
124,6 → 152,7 |
<filterChain> |
<name>ContextStaticTimerExample</name> |
<expression>ContextStaticTimer("2008-03-1 12:00:00","2008-03-2 19:56:00")</expression> |
/impl/src/java/pt/estgp/estgweb/services/blogs/DeleteBlogService.java |
---|
New file |
0,0 → 1,46 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.announcements.DeleteAnnouncementService; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import org.apache.log4j.Logger; |
import java.io.Serializable; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class DeleteBlogService implements IService |
{ |
private static final Logger logger = Logger.getLogger(DeleteBlogService.class); |
public Boolean run(Serializable id, UserSession userSession) |
{ |
try |
{ |
logger.info("Deleting blog:" + id + " user:" + userSession.getUser().getUsername()); |
DaoFactory.getBlogDaoImpl().delete(id); |
return true; |
} |
catch(Exception e) |
{ |
logger.error("Can't delete blog:"+id +""+e); |
return false; |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogService.java |
---|
4,6 → 4,7 |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.Globals; |
29,13 → 30,23 |
{ |
private static final Logger logger = Logger.getLogger(CreateBlogService.class); |
public BlogView run(Blog b, UserSession userSession) throws ServiceException |
public BlogView run(BlogView bV, UserSession userSession) throws ServiceException |
{ |
Blog b; |
if(bV.getId() <= 0) |
{ |
b = DomainObjectFactory.createBlogImpl(); |
b.setOwner(userSession.getUser()); |
b.setSaveDate(new Date()); |
DaoFactory.getBlogDaoImpl().save(b); |
} |
else |
{ |
b = DaoFactory.getBlogDaoImpl().get(bV.getSerializable()); |
} |
bV.persistViewInObject(b); |
if(b.getTargetRoles() == null || b.getTargetRoles().length() == 0) |
b.setTargetRoles(Globals.ALL_ROLE); |
b.setOwner(userSession.getUser()); |
b.setSaveDate(new Date()); |
DaoFactory.getBlogDaoImpl().save(b); |
return new BlogView(b); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/DeleteBlogPostService.java |
---|
New file |
0,0 → 1,45 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import org.apache.log4j.Logger; |
import java.io.Serializable; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class DeleteBlogPostService implements IService |
{ |
private static final Logger logger = Logger.getLogger(DeleteBlogPostService.class); |
public Boolean run(Serializable id, UserSession userSession) |
{ |
try |
{ |
logger.info("Deleting blog post:" + id + " user:" + userSession.getUser().getUsername()); |
DaoFactory.getBlogPostDaoImpl().delete(id); |
return true; |
} |
catch(Exception e) |
{ |
logger.error("Can't delete blog post:"+id +""+e); |
return false; |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/announcements/DeleteAnnouncementService.java |
---|
34,13 → 34,13 |
{ |
try |
{ |
logger.info("Deleting announcement:" + id); |
logger.info("Deleting announcement:" + id+ " user:" + userSession.getUser().getUsername()); |
DaoFactory.getAnnouncementDaoImpl().delete(id); |
return true; |
} |
catch(Exception e) |
{ |
logger.error("Can´t delete announcement:"+id +""+e); |
logger.error("Can't delete announcement:"+id +""+e); |
return false; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/BlogImpl.java |
---|
14,7 → 14,7 |
* @time 14:37:50 |
* @see pt.estgp.estgweb.domain |
*/ |
public class BlogImpl extends Blog implements IAddContents, IOwned, IInternal, ITargetRoles |
public class BlogImpl extends Blog implements IAddContents, IOwned, IInternal, ITargetRoles, IValid |
{ |
private static final Logger logger = Logger.getLogger(BlogImpl.class); |
65,4 → 65,9 |
{ |
return getId(); |
} |
public boolean isValid() |
{ |
return isStatus(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/BlogPostImpl.java |
---|
9,16 → 9,37 |
* @time 14:38:08 |
* @see pt.estgp.estgweb.domain |
*/ |
public class BlogPostImpl extends BlogPost |
public class BlogPostImpl extends BlogPost implements IOwned, IValid, IInternal |
{ |
public Serializable getSerializable() |
{ |
return getId(); |
} |
/*Not Implemented*/ |
/** |
* Not implemeted |
* @return null |
*/ |
public List<String> getOwnerRoles() |
{ |
return null; |
} |
/** |
* Not implemented |
*/ |
public String getChoosedOwnerRole() |
{ |
return null; |
} |
public boolean isValid() |
{ |
return isStatus(); |
} |
public boolean isInternal() |
{ |
return getBlog().isInternal(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/BlogPostView.java |
---|
14,7 → 14,7 |
* @time 19:34:49 |
* @see pt.estgp.estgweb.domain.views |
*/ |
public class BlogPostView extends DomainObjectView implements IOwned |
public class BlogPostView extends DomainObjectView implements IOwned, IInternal, IValid |
{ |
private static final Logger logger = Logger.getLogger(BlogPostView.class); |
29,6 → 29,7 |
private boolean status; |
private BlogPost blogPost; |
private long blogId; |
private boolean internal; |
public BlogPostView() |
{ |
45,6 → 46,7 |
this.id = blogPost.getId(); |
this.owner = blogPost.getOwner(); |
this.blogId = blogPost.getBlog().getId(); |
this.internal = blogPost.getBlog().isInternal(); |
} |
public void persistViewInObject(BlogPost blogPost) |
177,4 → 179,14 |
else |
return null; |
} |
public boolean isInternal() |
{ |
return internal; |
} |
public boolean isValid() |
{ |
return status; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/BlogView.java |
---|
14,7 → 14,7 |
* @time 19:34:49 |
* @see pt.estgp.estgweb.domain.views |
*/ |
public class BlogView extends DomainObjectView implements IAddContents, IOwned, IInternal, ITargetRoles |
public class BlogView extends DomainObjectView implements IAddContents, IOwned, IInternal, ITargetRoles, IValid |
{ |
private static final Logger logger = Logger.getLogger(BlogView.class); |
58,8 → 58,10 |
blog.setTitle(title); |
blog.setDescription(description); |
blog.setTargetRoles(RoleManager.getSerialRoles(targetRoles)); |
blog.setImage(image); |
if(image != null) |
blog.setImage(image); |
blog.setStatus(status); |
blog.setInternal(internal); |
} |
241,6 → 243,11 |
return getTargetRoles(); |
} |
public boolean isValid() |
{ |
return status; |
} |
public static class MonthPosts |
{ |
private int count; |
/impl/src/java/pt/estgp/estgweb/web/controllers/AddRolesController.java |
---|
29,7 → 29,7 |
private static final Logger logger = Logger.getLogger(AddRolesController.class); |
private static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY; |
protected static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY; |
public ActionForward start(ActionMapping mapping, |
ActionForm form , |
/impl/src/java/pt/estgp/estgweb/web/controllers/blogs/BlogsController.java |
---|
4,12 → 4,16 |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.web.utils.DomainUtils; |
import pt.estgp.estgweb.web.form.blogs.BlogForm; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.views.BlogPostView; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.*; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.*; |
import org.apache.struts.upload.FormFile; |
17,13 → 21,8 |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.ServletException; |
import java.io.InputStream; |
import java.io.ByteArrayOutputStream; |
import java.util.Date; |
import java.util.List; |
import java.io.Serializable; |
import jomm.utils.StreamsUtils; |
/** |
* @author Jorge Machado |
* @date 26/Fev/2008 |
35,6 → 34,25 |
private static final Logger logger = Logger.getLogger(BlogsController.class); |
private ActionForward loadBlogAndForward(long id, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response) |
throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException |
{ |
BlogView bV = loadBlogView(id,mapping,request,response); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("load"); |
} |
private BlogView loadBlogView(long id, ActionMapping mapping, HttpServletRequest request, HttpServletResponse response) |
throws Throwable, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException, NoCookiesException |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{id}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "LoadBlog", args, names); |
return bV; |
} |
public ActionForward save(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
50,35 → 68,30 |
saveErrors(request,errors); |
return mapping.findForward("submit"); |
} |
if (blogForm.getBlogView().getId() <= 0) |
IServiceManager sm = ServiceManager.getInstance(); |
if (blogForm.getImage() != null && blogForm.getImage().getFileSize() != 0) |
{ |
Blog blog = DomainObjectFactory.createBlogImpl(); |
blogForm.getBlogView().persistViewInObject(blog); |
IServiceManager sm = ServiceManager.getInstance(); |
if (blogForm.getImage() != null && blogForm.getImage().getFileSize() != 0) |
{ |
FormFile image = blogForm.getImage(); |
Image i = DomainUtils.getNewImage(image,blog.getTitle()); |
blog.setImage(i); |
} |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{blog}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "CreateBlog", args, names); |
FormFile image = blogForm.getImage(); |
Image i = DomainUtils.getNewImage(image,blogForm.getBlogView().getTitle()); |
blogForm.getBlogView().setImage(i); |
} |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{blogForm.getBlogView()}; |
BlogView bV = blogForm.getBlogView(); |
if(bV.getId() <= 0) |
{ |
bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "CreateBlog", args, names); |
addMessage(request, "blog.created.success", "" + bV.getId()); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("load"); |
} |
else |
{ |
BlogView bV = blogForm.getBlogView(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{bV}; |
bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "EditBlog", args, names); |
addMessage(request, "blog.edited.success", "" + bV.getId()); |
return mapping.findForward("load"); |
} |
request.setAttribute("BlogView", bV); |
return mapping.findForward("load"); |
} |
catch (FilterChainFailedException e) |
{ |
99,12 → 112,7 |
{ |
try |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{Long.parseLong(request.getParameter("id"))}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "LoadBlog", args, names); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("load"); |
return loadBlogAndForward(Long.parseLong(request.getParameter("id")),mapping,request,response); |
} |
catch (FilterChainFailedException e) |
{ |
125,10 → 133,7 |
{ |
try |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{Long.parseLong(request.getParameter("id"))}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "LoadBlog", args, names); |
BlogView bV = loadBlogView(Long.parseLong(request.getParameter("id")),mapping,request,response); |
request.setAttribute("BlogView", bV); |
BlogForm blogForm = (BlogForm) form; |
blogForm.setBlogView(bV); |
160,10 → 165,7 |
if(!errors.isEmpty()) |
{ |
saveErrors(request,errors); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{blogForm.getBlogView().getId()}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "LoadBlog", args, names); |
BlogView bV = loadBlogView(blogForm.getBlogView().getId(),mapping,request,response); |
request.setAttribute("BlogView", bV); |
request.setAttribute("BlogPostView", blogForm.getBlogPostView()); |
return mapping.findForward("load"); |
185,12 → 187,7 |
bPV = (BlogPostView) sm.execute(RequestUtils.getRequester(request, response), "CreateBlogPost", args, names); |
addMessage(request, "blog.post.created.success", "" + bPV.getId()); |
names = new String[]{"serializable"}; |
args = new Object[]{blogForm.getBlogView().getId()}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "LoadBlog", args, names); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("load"); |
return loadBlogAndForward(blogForm.getBlogView().getId(),mapping,request,response); |
} |
else |
{ |
215,9 → 212,9 |
} |
public ActionForward loadMonth(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
242,4 → 239,106 |
return mapping.findForward("error500"); |
} |
} |
public ActionForward edit(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request,response); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{new Long(request.getParameter("id"))}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request, response), "LoadEditBlog", args, names); |
BlogForm blogForm = (BlogForm) form; |
blogForm.setBlogView(bV); |
blogForm.setSelectedRoles(bV.getTargetRoles()); |
sess.put(TARGET_ROLES_KEY, (Serializable) bV.getTargetRoles()); |
sess.serialize(request,response); |
return mapping.findForward("submit"); |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
throw e; |
} |
} |
public ActionForward delete(ActionMapping mapping, |
ActionForm form , |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{new Long(request.getParameter("id"))}; |
Boolean status= (Boolean) sm.execute(RequestUtils.getRequester(request, response),"DeleteBlog",args,names); |
if(status) |
{ |
addMessage(request,"blog.deleted.success","" + request.getParameter("id")); |
} |
else |
{ |
addMessage(request,"blog.deleted.fail","" + request.getParameter("id")); |
} |
return mapping.getInputForward(); |
} |
catch(FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e,e); |
throw e; |
} |
} |
public ActionForward deletePost(ActionMapping mapping, |
ActionForm form , |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{new Long(request.getParameter("id"))}; |
Boolean status= (Boolean) sm.execute(RequestUtils.getRequester(request, response),"DeleteBlogPost",args,names); |
if(status) |
{ |
addMessage(request,"blog.post.deleted.success","" + request.getParameter("id")); |
} |
else |
{ |
addMessage(request,"blog.post.deleted.fail","" + request.getParameter("id")); |
} |
return loadBlogAndForward(new Long(request.getParameter("blogId")),mapping,request,response); |
} |
catch(FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e,e); |
throw e; |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/AnnouncementsController.java |
---|
38,7 → 38,6 |
private static final Logger logger = Logger.getLogger(AnnouncementsController.class); |
private static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY; |
public ActionForward save(ActionMapping mapping, |
ActionForm form, |
/impl/src/hbm/pt/estgp/estgweb/domain/Blog.hbm.xml |
---|
20,6 → 20,10 |
<property name="status" type="boolean" /> |
<many-to-one name="image" column="image" class="pt.estgp.estgweb.domain.Image" lazy="no-proxy" outer-join="false" cascade="all"/> |
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="false" outer-join="true"/> |
<set name="posts" cascade="delete" lazy="true"> |
<key column="blog"/> |
<one-to-many class="pt.estgp.estgweb.domain.BlogPost"/> |
</set> |
<subclass name="pt.estgp.estgweb.domain.BlogImpl" discriminator-value="BlogImpl"> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitBlog"> |
<meta attribute="extends">pt.estgp.estgweb.domain.BlogImpl</meta> |
28,6 → 32,5 |
<subclass name="pt.estgp.estgweb.domain.CourseUnitBlogImpl" discriminator-value="CourseUnitBlogImpl"/> |
</subclass> |
</subclass> |
</class> |
</hibernate-mapping> |
/impl/src/web/js/functions.js |
---|
57,3 → 57,17 |
} |
} |
function confirmAction(msg,form,actionOk) |
{ |
if(confirm(msg)) |
{ |
set(form,actionOk); |
form.submit(); |
} |
} |
function confirmLink(msg) |
{ |
return confirm(msg); |
} |
/impl/src/web/public/blogs/blog.jsp |
---|
1,4 → 1,5 |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
7,6 → 8,7 |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<jsp:useBean id="BlogView" type="pt.estgp.estgweb.domain.views.BlogView" scope="request"/> |
<% |
String fromAction = ""; |
String from = ""; |
21,6 → 23,7 |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<html:errors/> |
<jomm:messages/> |
<div class="blog"> |
29,7 → 32,22 |
<h1> |
<bean:write name="BlogView" property="title"/> |
</h1> |
<baco:canManage name="BlogView"> |
<% |
String confirmDelete = MessageResources.getMessage(request,"blog.confirm.delete"); |
request.setAttribute("confirmDelete",confirmDelete); |
%> |
<!--valid="false">--> |
<html:link action="${user}/startEditBlog${fromAction}?id=${BlogView.id}"> |
<bean:message key="edit"/> |
</html:link> |
<html:link onclick="return confirm('${confirmDelete}')" action="${user}/startDeleteBlog${fromAction}?id=${BlogView.id}"> |
<bean:message key="delete"/> |
</html:link> |
</baco:canManage> |
<table> |
<tr> |
<td valign="top"> |
55,8 → 73,7 |
<div class="toolsContainer"> |
<div class="tools"> |
<baco:canAddContent name="BlogView"> |
<a href="<%=request.getContextPath()%>${user}/startAddPost${fromAction}.do?id=<%=BlogView.getImage().getId()%>">Adicionar |
POST</a> |
<a href="<%=request.getContextPath()%>${user}/startAddPost${fromAction}.do?id=<%=BlogView.getId()%>"><bean:message key="blog.add.post"/></a> |
</baco:canAddContent> |
</div> |
</div> |
107,7 → 124,12 |
<tr> |
<td class="postsContainer"> |
<logic:notEmpty name="BlogView" property="lastPosts"> |
<% |
String confirmDeletePost = MessageResources.getMessage(request,"blog.confirm.delete.post"); |
request.setAttribute("confirmDeletePost",confirmDeletePost); |
%> |
<logic:notEqual value="0" name="BlogView" property="month"> |
<h2><bean:message key="month.${BlogView.month}.year" arg0="${BlogView.year}"/></h2> |
</logic:notEqual> |
<table class="posts"> |
117,6 → 139,9 |
<tr> |
<td colspan="2" class="title"> |
${post.title} |
<baco:canManage name="post"> |
<a onclick="return confirm('${confirmDeletePost}')" href="<%=request.getContextPath()%>${user}/startDeletePost${fromAction}.do?id=${post.id}&blogId=${BlogView.id}"><bean:message key="blog.delete.post"/></a> |
</baco:canManage> |
</td> |
</tr> |
<tr> |
175,8 → 200,8 |
</table> |
<div class="pFooter"> |
<a href="<%=request.getContextPath()%>/blog/<%=BlogView.getId()%>"><%=Globals.SITE_URL%> |
/blog/<%=BlogView.getId()%> |
<a href="<%=request.getContextPath()%>/blog/<%=BlogView.getId()%>"> |
<%=Globals.SITE_URL + "/blog/" + BlogView.getId()%> |
</a> |
<bean:message key="blog.owner"/> |
<a href="mailto:${BlogView.ownerEmail}">${BlogView.owner.name}</a> |