diff --git a/YACOSWeb/WebContent/WEB-INF/classes/messages.properties b/YACOSWeb/WebContent/WEB-INF/classes/messages.properties index aa3dff8..a5a809a 100644 --- a/YACOSWeb/WebContent/WEB-INF/classes/messages.properties +++ b/YACOSWeb/WebContent/WEB-INF/classes/messages.properties @@ -107,8 +107,9 @@ message.error.page404.content=Sorry, the page where you looking for, doesn't fou message.error.page403.title=Acces denied message.error.page403.content=Sorry, you have not access at this page. - submission.title=Article's submission +submission.modify=Modify your article +submission.modify.denied=Sorry, you aren't allowed to do that operation. form.submission.article.title=Article's title form.submission.article.theme=Article's theme diff --git a/YACOSWeb/WebContent/WEB-INF/decorators/main.jsp b/YACOSWeb/WebContent/WEB-INF/decorators/main.jsp index 0c531db..02379a8 100644 --- a/YACOSWeb/WebContent/WEB-INF/decorators/main.jsp +++ b/YACOSWeb/WebContent/WEB-INF/decorators/main.jsp @@ -11,6 +11,7 @@ <fmt:message key="title" /> + - - @@ -35,8 +33,8 @@ ">Download - Modify - Delete + ">Modify + ">Delete diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/submissionArticle.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/submissionArticle.jsp index 0c760cb..bcf6ecc 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/submissionArticle.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/submissionArticle.jsp @@ -9,8 +9,17 @@ +

+ + + + + + + + +

-

diff --git a/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml b/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml index eccc078..4556cb4 100644 --- a/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml +++ b/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml @@ -39,11 +39,10 @@ LogonController ListEvaluationController ArticleDownloadController + ArticleDeleteController ListReportController ForgotPasswordController - - DetailArticleController - + DetailArticleController @@ -65,6 +64,10 @@ + + + + @@ -73,7 +76,7 @@ - + @@ -100,7 +103,7 @@ - + diff --git a/YACOSWeb/src/org/yacos/web/author/controller/ArticleDeleteController.java b/YACOSWeb/src/org/yacos/web/author/controller/ArticleDeleteController.java new file mode 100644 index 0000000..0dad6ea --- /dev/null +++ b/YACOSWeb/src/org/yacos/web/author/controller/ArticleDeleteController.java @@ -0,0 +1,49 @@ +package org.yacos.web.author.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.swing.text.html.FormView; + +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.ModelAndViewDefiningException; +import org.springframework.web.servlet.mvc.Controller; +import org.springframework.web.servlet.view.RedirectView; +import org.yacos.core.article.Article; +import org.yacos.core.article.IArticleManager; + +public class ArticleDeleteController implements Controller { + private IArticleManager articleManager; + + public IArticleManager getArticleManager() { + return articleManager; + } + + public void setArticleManager(IArticleManager articleManager) { + this.articleManager = articleManager; + } + + public ModelAndView handleRequest(HttpServletRequest request, + HttpServletResponse response) throws Exception { + + try { + Integer articleId = Integer.parseInt(request.getParameter("articleId")); + Article article = articleManager.getArticle(articleId); + + // FIXME : vérifier si le gars a le droit de suppr ou pas + + if(article == null){ + return new ModelAndView(new RedirectView("404error.htm")); + } + + articleManager.removeArticle(articleId); + + + } + catch(NumberFormatException e) { + throw new ModelAndViewDefiningException(new ModelAndView("404error")); + } + + return new ModelAndView(new RedirectView("manageArticle.htm")); + } + +} \ No newline at end of file diff --git a/YACOSWeb/src/org/yacos/web/author/controller/ManageArticleController.java b/YACOSWeb/src/org/yacos/web/author/controller/ManageArticleController.java index 420700c..70e2063 100644 --- a/YACOSWeb/src/org/yacos/web/author/controller/ManageArticleController.java +++ b/YACOSWeb/src/org/yacos/web/author/controller/ManageArticleController.java @@ -21,6 +21,12 @@ public class ManageArticleController extends SimpleFormController { protected final Log logger = LogFactory.getLog(getClass()); private IArticleManager articleManager; + + + public void deleteArticle(Integer id) { + articleManager.removeArticle(id); + } + public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, NoConferenceSelectedException { diff --git a/YACOSWeb/src/org/yacos/web/author/controller/SArticleController.java b/YACOSWeb/src/org/yacos/web/author/controller/SArticleController.java index dff9d1a..9844223 100644 --- a/YACOSWeb/src/org/yacos/web/author/controller/SArticleController.java +++ b/YACOSWeb/src/org/yacos/web/author/controller/SArticleController.java @@ -15,6 +15,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.validation.BindException; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.ModelAndViewDefiningException; import org.springframework.web.servlet.mvc.SimpleFormController; import org.springframework.web.servlet.view.RedirectView; import org.yacos.core.article.Article; @@ -107,14 +108,54 @@ public class SArticleController extends SimpleFormController { return new ModelAndView(new RedirectView(getSuccessView())); } + + protected Object formBackingObject(HttpServletRequest request) throws ModelAndViewDefiningException { + String action = request.getParameter("action"); + if (action == null || action.equals("")) + { + FormSubmission myArticle = new FormSubmission(); + return myArticle; + } + else if (action.equals("modify")) { + + String articleID = request.getParameter("articleID"); + + try { + Integer id = new Integer(articleID); + + // TODO : vérifier que l'id de l'article appartient à l'auteur... vive les GET... + + Article a = articleManager.getArticle(id); + + if (a == null) + throw new ModelAndViewDefiningException(new ModelAndView("denied", "message", getMessageSourceAccessor().getMessage("submission.modify.denied"))); + + FormSubmission myArticle = new FormSubmission(); + + + // FIXME : stocker l'abstract texte ds la BDD... et le récup après... + //myArticle.setAbstractText(); + + myArticle.setTitle(a.getTitle()); + myArticle.setListe(a.getSecondaryAuthors()); + myArticle.setTheme(a.getTopic()); + + + + + return myArticle; + + } + catch (NumberFormatException e) { + throw new ModelAndViewDefiningException(new ModelAndView("404error")); + } + + } + else { + throw new ModelAndViewDefiningException(new ModelAndView("404error")); + } - protected Object formBackingObject(HttpServletRequest request) throws ServletException { - FormSubmission myArticle = new FormSubmission(); - myArticle.setTitle(""); - myArticle.setTheme(""); - //myArticle.setMainauthor(""); - myArticle.setSecondaryauthor(""); - return myArticle; + } public IArticleManager getArticleManager() { diff --git a/YACOSWeb/src/org/yacos/web/author/form/FormSubmission.java b/YACOSWeb/src/org/yacos/web/author/form/FormSubmission.java index 138f540..e458401 100644 --- a/YACOSWeb/src/org/yacos/web/author/form/FormSubmission.java +++ b/YACOSWeb/src/org/yacos/web/author/form/FormSubmission.java @@ -6,7 +6,7 @@ import java.util.List; import org.springframework.web.multipart.MultipartFile; public class FormSubmission { - + private MultipartFile file; private String title; private String theme; @@ -14,19 +14,19 @@ public class FormSubmission { private String secondaryauthor; private ArrayList liste = new ArrayList(); private String abstractText; - + public FormSubmission() { - + } - public void setFile(MultipartFile file) { - this.file = file; - } + public void setFile(MultipartFile file) { + this.file = file; + } + + public MultipartFile getFile() { + return file; + } - public MultipartFile getFile() { - return file; - } - public String getTitle() { return title; } @@ -57,13 +57,13 @@ public class FormSubmission { } public void setListe(ArrayList liste) { - if(liste!=null) + if(liste != null) { - this.liste=new ArrayList(liste); + this.liste = new ArrayList(liste); } else { - this.liste = new ArrayList(); + this.liste = new ArrayList(); } } diff --git a/YACOSWeb/src/org/yacos/web/system/controller/ArticleDownloadController.java b/YACOSWeb/src/org/yacos/web/system/controller/ArticleDownloadController.java index 3cb7f93..fc968ec 100644 --- a/YACOSWeb/src/org/yacos/web/system/controller/ArticleDownloadController.java +++ b/YACOSWeb/src/org/yacos/web/system/controller/ArticleDownloadController.java @@ -42,6 +42,8 @@ public class ArticleDownloadController implements Controller { Integer articleId = Integer.parseInt(request.getParameter("articleId")); Article article = articleManager.getArticle(articleId); + // FIXME : vérifier si le gars a le droit de dl ou pas + if(article == null){ return new ModelAndView(new RedirectView("404error.htm")); }