Manage your article : on peut downloader, modifier, supprimer (à finaliser)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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">
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<body>
|
||||
|
||||
|
||||
Acces denied. Sorry for this inconvenience.
|
||||
<h4 class="title">Access denied</h4>
|
||||
|
||||
<div class="errorBox">
|
||||
${message}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
<h1> <a href="main.htm">
|
||||
|
||||
4o4 Error - Page not found
|
||||
404 Error - Page not found
|
||||
|
||||
</a></h1>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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}"/>
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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,14 +109,54 @@ public class SArticleController extends SimpleFormController {
|
||||
return new ModelAndView(new RedirectView(getSuccessView()));
|
||||
}
|
||||
|
||||
protected Object formBackingObject(HttpServletRequest request) throws ServletException {
|
||||
protected Object formBackingObject(HttpServletRequest request) throws ModelAndViewDefiningException {
|
||||
String action = request.getParameter("action");
|
||||
if (action == null || action.equals(""))
|
||||
{
|
||||
FormSubmission myArticle = new FormSubmission();
|
||||
myArticle.setTitle("");
|
||||
myArticle.setTheme("");
|
||||
//myArticle.setMainauthor("");
|
||||
myArticle.setSecondaryauthor("");
|
||||
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() {
|
||||
return articleManager;
|
||||
|
||||
@@ -57,9 +57,9 @@ 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
|
||||
{
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user