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