Manage your article : on peut downloader, modifier, supprimer (à finaliser)

This commit is contained in:
Frederic Debuire
2008-02-16 00:55:18 +00:00
parent e7be4d4d1b
commit f31e946d2d
12 changed files with 143 additions and 33 deletions

View File

@@ -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

View File

@@ -11,6 +11,7 @@
<link rel="icon" type="image/png" href="./images/favicon.png" />
<title><fmt:message key="title" /></title>
<link rel="stylesheet" href="./stylesheets/base.css" type="text/css" />
<script type='text/javascript' src='./javascripts/prototype.js'></script>
<script type='text/javascript' src='./javascripts/rounded_boxes.js'></script>
<script type="text/javascript">

View File

@@ -5,7 +5,7 @@
<body>
Acces denied. Sorry for this inconvenience.
<h4 class="title">Access denied</h4>
<div class="errorBox">
${message}

View File

@@ -26,7 +26,7 @@
<h1> <a href="main.htm">
4o4 Error - Page not found
404 Error - Page not found
</a></h1>

View File

@@ -5,8 +5,6 @@
<script type='text/javascript' src='./javascripts/prototype.js'></script>
<script type='text/javascript' src='./javascripts/scriptaculous.js'></script>
<script type='text/javascript' src='./javascripts/effects.js'></script>
<script type='text/javascript' src='./dwr/engine.js'></script>
<script type='text/javascript' src='./dwr/util.js'></script>
<script type='text/javascript' src='./javascripts/yacos/manageArticle.js'></script>
</head>
<body>
@@ -35,8 +33,8 @@
</ul>
</td>
<td><a id="articleURL${i.index}" title="Download" href="<c:url value="/download.htm"><c:param name="articleId" value="${article.id}"/></c:url>"><img src="./images/cc-download_manager-128x128.png" alt="Download" /></a></td>
<td><a id="modifyArticle${i.index}" title="Modify" href=""/><img src="./images/cc-button_ok-128x128.png" alt="Modify" /></a></td>
<td><a id="suppressArticle${i.index}" title="Delete" href="" /><img src="./images/cc-button_cancel-128x128.png" alt="Delete" /></a></td>
<td><a id="modifyArticle${i.index}" title="Modify" href="<c:url value="/submissionArticle.htm"><c:param name="action" value="modify"/><c:param name="articleID" value="${article.id}"/></c:url>"><img src="./images/cc-button_ok-128x128.png" alt="Modify" /></a></td>
<td><a id="suppressArticle${i.index}" title="Delete" href="<c:url value="/delete.htm"><c:param name="articleId" value="${article.id}"/></c:url>"><img src="./images/cc-button_cancel-128x128.png" alt="Delete"/></a></td>
</tr>
</tbody>
</table>

View File

@@ -9,8 +9,17 @@
</head>
<body>
<h4 class="title">
<c:choose>
<c:when test="${param['action'] eq 'modify'}">
<fmt:message key="submission.modify" />
</c:when>
<c:otherwise>
<fmt:message key="submission.title" />
</c:otherwise>
</c:choose>
</h4>
<h4 class="title"><fmt:message key="submission.title" /></h4>
<form:form method="post" enctype="multipart/form-data" commandName="submissionArticle">
<fieldset>

View File

@@ -39,11 +39,10 @@
<prop key="/login.htm">LogonController</prop>
<prop key="/listEvaluation.htm">ListEvaluationController</prop>
<prop key="/download.htm">ArticleDownloadController</prop>
<prop key="/delete.htm">ArticleDeleteController</prop>
<prop key="/listReport.htm">ListReportController</prop>
<prop key="/forgotPassword.htm">ForgotPasswordController</prop>
<prop key="/detailArticle.htm">
DetailArticleController
</prop>
<prop key="/detailArticle.htm">DetailArticleController</prop>
</props>
</property>
</bean>
@@ -66,6 +65,10 @@
<property name="downloadDirPath" value="${download.dir.path}"/>
</bean>
<bean id="ArticleDeleteController" class="org.yacos.web.author.controller.ArticleDeleteController">
<property name="articleManager" ref="articleManager" />
</bean>
<bean id="SUserRegistrationController"
class="org.yacos.web.system.controller.SUserRegistrationController">
<property name="sessionForm" value="true" />
@@ -73,7 +76,7 @@
<property name="commandClass"
value="org.yacos.web.system.form.FormUser" />
<property name="formView" value="registerUser" />
<property name="successView" value="listArticle.htm" />
<property name="successView" value="listConference.htm" />
<property name="userManager" ref="userManager" />
<property name="validator" ref="UserValidator"/>
</bean>
@@ -100,7 +103,7 @@
<property name="commandClass"
value="org.yacos.web.author.form.FormSubmission" />
<property name="formView" value="submissionArticle" />
<property name="successView" value="listArticle.htm" />
<property name="successView" value="manageArticle.htm" />
<property name="articleManager" ref="articleManager" />
<property name="validator" ref="submissionCheck" />
<property name="downloadDirPath" value="${download.dir.path}"/>

View File

@@ -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"));
}
}

View File

@@ -22,6 +22,12 @@ public class ManageArticleController extends SimpleFormController {
private IArticleManager articleManager;
public void deleteArticle(Integer id) {
articleManager.removeArticle(id);
}
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, NoConferenceSelectedException {

View File

@@ -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;
@@ -108,13 +109,53 @@ public class SArticleController extends SimpleFormController {
return new ModelAndView(new RedirectView(getSuccessView()));
}
protected Object formBackingObject(HttpServletRequest request) throws ServletException {
FormSubmission myArticle = new FormSubmission();
myArticle.setTitle("");
myArticle.setTheme("");
//myArticle.setMainauthor("");
myArticle.setSecondaryauthor("");
return myArticle;
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 <20> 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<70>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"));
}
}
public IArticleManager getArticleManager() {

View File

@@ -19,13 +19,13 @@ public class 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<String> liste) {
if(liste!=null)
if(liste != null)
{
this.liste=new ArrayList<String>(liste);
this.liste = new ArrayList<String>(liste);
}
else
{
this.liste = new ArrayList<String>();
this.liste = new ArrayList<String>();
}
}

View File

@@ -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"));
}