diff --git a/YACOSWeb/WebContent/WEB-INF/classes/messages.properties b/YACOSWeb/WebContent/WEB-INF/classes/messages.properties
index e7086bb..1269315 100644
--- a/YACOSWeb/WebContent/WEB-INF/classes/messages.properties
+++ b/YACOSWeb/WebContent/WEB-INF/classes/messages.properties
@@ -118,7 +118,8 @@ preference.ok=You have successfully chosen all your preferences about each artic
dispatch.title=Dispatch the articles to the members
# Conference Form
-conference.titleMenu=Add a conference
+conference.titleAdd=Add a conference
+conference.titleModify=Modify a conference
conference.title=Title
conference.description=Description
conference.otherInformations=Complementary information
diff --git a/YACOSWeb/WebContent/WEB-INF/decorators/usermenu.jsp b/YACOSWeb/WebContent/WEB-INF/decorators/usermenu.jsp
index 4fe9a1e..f29e7ea 100644
--- a/YACOSWeb/WebContent/WEB-INF/decorators/usermenu.jsp
+++ b/YACOSWeb/WebContent/WEB-INF/decorators/usermenu.jsp
@@ -18,7 +18,7 @@
diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp
index ad7346e..6049331 100644
--- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp
+++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp
@@ -4,7 +4,17 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp
index a20c05e..795b4bb 100644
--- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp
+++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp
@@ -8,7 +8,16 @@
-
+
+
+
+
+
+
+
+
+
+
diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp
index bbaac2d..2acd910 100644
--- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp
+++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp
@@ -5,7 +5,16 @@
-
+
+
+
+
+
+
+
+
+
+
diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp
index 4695533..cd69757 100644
--- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp
+++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp
@@ -128,7 +128,16 @@ function clearPerson() {
-
+
+
+
+
+
+
+
+
+
+
diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp
index 59c8e5b..e14c354 100644
--- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp
+++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp
@@ -116,7 +116,16 @@ function filterUser(el, value) {
-
+
+
+
+
+
+
+
+
+
+
diff --git a/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java b/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java
index 3606f79..a34b1d4 100644
--- a/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java
+++ b/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java
@@ -33,7 +33,7 @@ public class AddConferenceController extends AbstractWizardFormController {
private IConferenceManager conferenceManager;
private IUserManager userManager;
-
+
private IEvaluationManager evaluationManager;
public IEvaluationManager getEvaluationManager() {
@@ -88,7 +88,7 @@ public class AddConferenceController extends AbstractWizardFormController {
listPersonBean.remove(truePerson);
listPersonFiltered.remove(truePerson);
}
-
+
public void addInvitation(String email){
PersonBean invitationBean = new PersonBean();
invitationBean.setLogin(email);
@@ -145,7 +145,7 @@ public class AddConferenceController extends AbstractWizardFormController {
private Set criteria;
private Set criteriaAll;
-
+
public Set getCriteriaAll() {
return criteriaAll;
}
@@ -153,7 +153,7 @@ public class AddConferenceController extends AbstractWizardFormController {
public Set getCriteriaAdded() {
return criteria;
}
-
+
public CriterionBean getTrueCriteria(int id) {
for (CriterionBean cb : criteriaAll) {
if (cb.getId() == id){
@@ -166,15 +166,15 @@ public class AddConferenceController extends AbstractWizardFormController {
return cb;
}
}
-
+
return null;
}
-
+
public void setCriterionClick(CriterionBean c) {
if (c.getId() == -1) {
c.setId(getNextId());
}
-
+
criteria.remove(c);
criteria.add(c);
}
@@ -185,18 +185,18 @@ public class AddConferenceController extends AbstractWizardFormController {
}
CriterionBean trueCriteria = getTrueCriteria(c.getId());
-
+
criteria.remove(trueCriteria);
criteria.add(trueCriteria);
criteriaAll.remove(trueCriteria);
}
public void deleteCriterion(CriterionBean c) {
-
+
CriterionBean trueCriteria = getTrueCriteria(c.getId());
-
-
-
+
+
+
criteria.remove(trueCriteria);
criteriaAll.add(trueCriteria);
}
@@ -216,18 +216,27 @@ public class AddConferenceController extends AbstractWizardFormController {
protected Object formBackingObject(HttpServletRequest request) throws ModelAndViewDefiningException {
logger.info(this.getClass().toString() + " dans le formBackingObject");
-
+
FormConference conference = new FormConference();
-
+
String action = request.getParameter("action");
- if (action == null || action.equals(""))
- {
- // TODO : tester ici si le gars a le droit d'être ici
- // a-t-il le droit de créer une conférence ?
-
+ if (action == null || action.equals("")) {
+ // TODO : tester ici si le gars a le droit d'�tre ici
+ // a-t-il le droit de cr�er une conf�rence ?
+
criteria = new HashSet();
criteriaAll = new HashSet();
List listCriterion = evaluationManager.getCriterions();
+
+
+ int maxNext = 0;
+ for (Criterion crit : listCriterion) {
+ if (maxNext <= crit.getId())
+ maxNext = crit.getId();
+ }
+
+ nextId = maxNext + 1;
+
for (Criterion crit : listCriterion) {
CriterionBean cb = new CriterionBean();
cb.setId(crit.getId());
@@ -237,7 +246,7 @@ public class AddConferenceController extends AbstractWizardFormController {
criteriaAll.add(cb);
getNextId();
}
-
+
listPersonBean = new ArrayList();
listPersonAdded = new ArrayList();
listPersonFiltered = listPersonBean;
@@ -250,16 +259,26 @@ public class AddConferenceController extends AbstractWizardFormController {
pb.setLogin(user.getLogin());
listPersonBean.add(pb);
}
-
+
return conference;
}
else if (action.equals("modify")) {
Conference conf = SessionService.getInstance().getCurrentConference();
-
+
criteria = new HashSet();
criteriaAll = new HashSet();
-
+
List listCriterionForConf = evaluationManager.getCriterions(conf.getId());
+ List listCriterion = evaluationManager.getCriterions();
+
+ int maxNext = 0;
+ for (Criterion crit : listCriterion) {
+ if (maxNext <= crit.getId())
+ maxNext = crit.getId();
+ }
+
+ nextId = maxNext + 1;
+
for (Criterion crit : listCriterionForConf) {
CriterionBean cb = new CriterionBean();
cb.setId(crit.getId());
@@ -269,8 +288,7 @@ public class AddConferenceController extends AbstractWizardFormController {
criteria.add(cb);
getNextId();
}
-
- List listCriterion = evaluationManager.getCriterions();
+
for (Criterion crit : listCriterion) {
CriterionBean cb = new CriterionBean();
cb.setId(crit.getId());
@@ -280,7 +298,15 @@ public class AddConferenceController extends AbstractWizardFormController {
criteriaAll.add(cb);
getNextId();
}
-
+
+ // remove of the criteria already added
+ Set criteriaAllIter = new HashSet(criteriaAll);
+ for (CriterionBean crit : criteriaAllIter)
+ for (CriterionBean crit2 : criteria)
+ if (crit.getId() == crit2.getId())
+ criteriaAll.remove(crit);
+
+
listPersonBean = new ArrayList();
listPersonAdded = new ArrayList();
listPersonFiltered = listPersonBean;
@@ -293,11 +319,8 @@ public class AddConferenceController extends AbstractWizardFormController {
pb.setLogin(user.getLogin());
listPersonBean.add(pb);
}
-
-
- // FIXME : bug here when we remove a person
- // and remove the person added from the list above
- List listUsersForConf = userManager.getUsers(conf.getId());
+
+ List listUsersForConf = userManager.getUsers(conf.getId(), RoleType.PCMEMBER);
for (User user : listUsersForConf) {
PersonBean pb = new PersonBean();
pb.setId(getNextPerson());
@@ -306,9 +329,16 @@ public class AddConferenceController extends AbstractWizardFormController {
pb.setLogin(user.getLogin());
listPersonAdded.add(pb);
}
-
+
+ // remove of the person already added
+ List listPersonIter = new ArrayList(listPersonBean);
+ for (PersonBean person : listPersonIter)
+ for (PersonBean person2 : listPersonAdded)
+ if (person.getLogin().equals(person2.getLogin()))
+ listPersonBean.remove(person);
+
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-
+
conference.setTitle(conf.getTitle());
conference.setDateArticleParsed(conf.getDateArticle());
conference.setDateArticle(format.format(conf.getDateArticle()));
@@ -320,7 +350,7 @@ public class AddConferenceController extends AbstractWizardFormController {
conference.setDateStart(format.format(conf.getDateStart()));
conference.setDescription(conf.getDescription());
conference.setOtherInformations(conf.getOtherInformations());
-
+
// TODO : ajouter ca ds conf ejb...
/*conference.setPageNumber(pageNumber);
conference.setSendInfo(sendInfo);
@@ -328,18 +358,18 @@ public class AddConferenceController extends AbstractWizardFormController {
conference.setTypeODT(typeODT);
conference.setTypePDF(typePDF);
conference.setTypeWord(typeWord);*/
-
+
return conference;
-
+
}
else {
throw new ModelAndViewDefiningException(new ModelAndView("404error"));
}
-
+
}
-
-
+
+
protected void validatePage(Object command, Errors errors, int page) {
FormConference conference = (FormConference) command;
ConferenceValidator conferenceValidator = (ConferenceValidator) getValidator();
@@ -360,36 +390,71 @@ public class AddConferenceController extends AbstractWizardFormController {
HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) {
FormConference conference = (FormConference) command;
-
- Conference conf = conferenceManager.addConference(
- conference.getTitle(),
- conference.getDescription(),
- conference.getOtherInformations(),
- conference.getDateArticleParsed(),
- conference.getDateArticleParsed(),
- conference.getDateEvaluationParsed(),
- conference.getDateStartParsed(),
- conference.getDateEndParsed());
-
- conference.setConferenceId(conf.getId());
- SessionService.getInstance().setCurrentConference(conf);
-
- for(CriterionBean criterion : criteria){
- conferenceManager.addCriterionToConference(
- conf.getId(),
- criterion.getLabel(),
- criterion.getMin(),
- criterion.getMax());
+ String action = request.getParameter("action");
+ if (action == null || action.equals("")) {
+
+ Conference conf = conferenceManager.addConference(
+ conference.getTitle(),
+ conference.getDescription(),
+ conference.getOtherInformations(),
+ conference.getDateArticleParsed(),
+ conference.getDateArticleParsed(),
+ conference.getDateEvaluationParsed(),
+ conference.getDateStartParsed(),
+ conference.getDateEndParsed());
+
+ conference.setConferenceId(conf.getId());
+ SessionService.getInstance().setCurrentConference(conf);
+
+ for(CriterionBean criterion : criteria){
+ conferenceManager.addCriterionToConference(
+ conf.getId(),
+ criterion.getLabel(),
+ criterion.getMin(),
+ criterion.getMax());
+ }
+
+ for(PersonBean personBean : listPersonAdded){
+ conferenceManager.addPCMemberToConference(
+ conf.getId(),
+ personBean.getLogin());
+ }
+
+ conferenceManager.addRole(RoleType.CHAIRMAN, SessionService.getInstance().getCurrentUserLogin(), conf.getId());
}
-
- for(PersonBean personBean : listPersonAdded){
- conferenceManager.addPCMemberToConference(
- conf.getId(),
- personBean.getLogin());
+ else {
+ Conference conf = SessionService.getInstance().getCurrentConference();
+ conf.setTitle(conference.getTitle());
+ conf.setDescription(conference.getDescription());
+ conf.setOtherInformations(conference.getOtherInformations());
+ conf.setDateArticle(conference.getDateArticleParsed());
+ conf.setDateAbstract(conference.getDateArticleParsed());
+ conf.setDateEnd(conference.getDateEndParsed());
+ conf.setDateStart(conference.getDateStartParsed());
+ conf.setDateEvaluation(conference.getDateEvaluationParsed());
+
+ conferenceManager.update(conf);
+
+ conferenceManager.removeCriterionToConference(conf.getId());
+
+ for(CriterionBean criterion : criteria){
+ conferenceManager.addCriterionToConference(
+ conf.getId(),
+ criterion.getLabel(),
+ criterion.getMin(),
+ criterion.getMax());
+ }
+
+ conferenceManager.removePCMemberForConf(conf.getId());
+
+ for(PersonBean personBean : listPersonAdded){
+ conferenceManager.addPCMemberToConference(
+ conf.getId(),
+ personBean.getLogin());
+ }
+
}
- conferenceManager.addRole(RoleType.CHAIRMAN, SessionService.getInstance().getCurrentUserLogin(), conf.getId());
-
return new ModelAndView("main");
}