diff --git a/YACOSWeb/WebContent/WEB-INF/classes/messages.properties b/YACOSWeb/WebContent/WEB-INF/classes/messages.properties index 261c902..7f0c8c2 100644 --- a/YACOSWeb/WebContent/WEB-INF/classes/messages.properties +++ b/YACOSWeb/WebContent/WEB-INF/classes/messages.properties @@ -113,6 +113,12 @@ conference.linkMenu.title=Adding Conference conference.linkMenu.choose=Choosing current conference conference.linkMenu.change=Change current conference +conference.errors.dateStartNonValid=This date is not valid +conference.errors.dateStartSuperiorEnd=The start date must be earlier than the end date +conference.errors.dateStartSuperiorArticle=The article's deadline date must be earlier than the start date +conference.errors.dateStartSuperiorEvaluation=The evaluation's deadline date must be earlier than the start date +conference.errors.dateArticleSuperiorEvaluation=The article's deadline date must be earlier than the evaluation's deadline date + conference2.title=Calendar conference2.date=Conference's date conference2.start=Start : @@ -130,6 +136,8 @@ evaluation.note=The note for the criterion evaluation.thisArticle=evaluate this article evaluation.choose=Choose an title to evaluation from the list +invitation.send=Send an invitation + #Validation messages for errors submissionArticle.title=The title should not be null submissionArticle.theme=The theme should not be null diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp index cfc443c..8e24bec 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp @@ -13,13 +13,13 @@
Information Page's numbers - File's type : - - - - - -
+

+ PDF + Tex/Latec + Word + OpenOffice + +
@@ -27,7 +27,7 @@
- Informations complémentaires : + Complementary Information :

diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp index 0efb9f3..0eade89 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference4.jsp @@ -82,7 +82,7 @@ function clearPerson() {

- +
Criteria diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp index 0eb6a95..cf67a6a 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp @@ -12,9 +12,10 @@ function init() { dwr.engine.setAsync(false); // a vérifier - AddCriteriaJS.initPerson(); + //AddCriteriaJS.initPerson(); dwr.engine.setAsync(true); setTimeout("fillTable()", 500); + setTimeout("fillTable2()", 500); } var peopleCache = { }; @@ -29,13 +30,17 @@ function fillTable() { }}); // Create a new set cloned from the pattern row var person, id; - people.sort(function(p1, p2) { return p1.name.localeCompare(p2.name); }); + people.sort(function(p1, p2) { return p1.firstName.localeCompare(p2.firstName); }); + + if (people.length == 0) + $("tableName").style.display = "none"; for (var i = 0; i < people.length; i++) { person = people[i]; id = person.id; dwr.util.cloneNode("pattern", { idSuffix:id }); - dwr.util.setValue("tablePerson" + id, person.name); + dwr.util.setValue("tablePerson" + id, person.firstName + " " + person.lastName); + $("tableName").style.display = ""; $("pattern" + id).style.display = ""; peopleCache[id] = person; } @@ -50,15 +55,19 @@ function fillTable2() { }}); // Create a new set cloned from the pattern row var person, id; - people.sort(function(p1, p2) { return p1.name.localeCompare(p2.name); }); + people.sort(function(p1, p2) { return p1.firstName.localeCompare(p2.lastName); }); + + if (people.length == 0) + $("tableNameAdded").style.display = "none"; for (var i = 0; i < people.length; i++) { person = people[i]; id = person.id; dwr.util.cloneNode("patternadded", { idSuffix:id }); - dwr.util.setValue("tablePersonadded" + id, person.name); + dwr.util.setValue("tablePersonadded" + id, person.firstName + " " + person.lastName); + $("tableNameAdded").style.display = ""; $("patternadded" + id).style.display = ""; - //peopleCache2[id] = person; + //peopleCache2[id] = person; // voir ici pr re-remplir après le back :) } }); } @@ -83,7 +92,7 @@ function addInvitation() { function deletePerson(eleid) { var person = peopleCache[eleid.substring(11)]; - if (confirm("Are you sure you want to delete " + person.name + "?")) { + if (confirm("Are you sure you want to delete " + person.firstName + " " + person.lastName + "?")) { dwr.engine.beginBatch(); AddCriteriaJS.deletePerson(person); filterUser(null, dwr.util.getValue("myfilter")); @@ -111,8 +120,15 @@ function filterUser(el, value) { - Filter -
+ Filter +

+
+ + + + + + @@ -123,12 +139,19 @@ function filterUser(el, value) { -
- Mail: - -
- +
+ Mail: Invite + +
+
+
+ + + + + + diff --git a/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java b/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java index 477dd9f..d5ebd6a 100644 --- a/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java +++ b/YACOSWeb/src/org/yacos/web/chairman/controller/AddConferenceController.java @@ -17,12 +17,11 @@ import org.yacos.core.conferences.Conference; import org.yacos.core.conferences.IConferenceManager; import org.yacos.core.users.IUserManager; import org.yacos.core.users.User; +import org.yacos.core.users.Role.RoleType; import org.yacos.web.chairman.form.FormConference; import org.yacos.web.chairman.validation.ConferenceValidator; import org.yacos.web.system.session.SessionService; - -//TODO : Clean this class public class AddConferenceController extends AbstractWizardFormController { protected final Log logger = LogFactory.getLog(getClass()); @@ -52,27 +51,15 @@ public class AddConferenceController extends AbstractWizardFormController { private List listPersonFiltered; private List listPersonAdded; - public void initPerson() { - listPersonBean = new ArrayList(); - listPersonAdded = new ArrayList(); - listPersonFiltered = new ArrayList(); - List listUsers = userManager.getUsers(); - for (User user : listUsers) { - PersonBean pb = new PersonBean(); - pb.setId(getNextPerson()); - pb.setName(user.getFirstName()); - pb.setLogin(user.getLogin()); - listPersonBean.add(pb); - } - } - public void fillUser(String text) { if (text.equals("")) - listPersonFiltered = new ArrayList(); + listPersonFiltered = listPersonBean; else { listPersonFiltered = new ArrayList(); for (PersonBean b : listPersonBean) { - if (b.getName().toLowerCase().contains(text.toLowerCase())){ + + // TODO : faire la vérif aussi sur le vrai nom, pas que sur le prénom + if (b.getFirstName().toLowerCase().startsWith(text.toLowerCase())){ listPersonFiltered.add(b); } } @@ -146,7 +133,7 @@ public class AddConferenceController extends AbstractWizardFormController { private static int nextId = 1; - private Set criteria = new HashSet();; + private Set criteria; public Set getAllCriteria() { return criteria; @@ -180,6 +167,23 @@ public class AddConferenceController extends AbstractWizardFormController { protected Object formBackingObject(HttpServletRequest request) throws ModelAndViewDefiningException { FormConference conference = new FormConference(); + + criteria = new HashSet(); + + + listPersonBean = new ArrayList(); + listPersonAdded = new ArrayList(); + listPersonFiltered = listPersonBean; + List listUsers = userManager.getUsers(); + for (User user : listUsers) { + PersonBean pb = new PersonBean(); + pb.setId(getNextPerson()); + pb.setFirstName(user.getFirstName()); + pb.setLastName(user.getLastName()); + pb.setLogin(user.getLogin()); + listPersonBean.add(pb); + } + return conference; } @@ -238,6 +242,8 @@ public class AddConferenceController extends AbstractWizardFormController { personBean.getLogin()); } + conferenceManager.addRole(RoleType.CHAIRMAN, SessionService.getInstance().getCurrentUserLogin(), conf.getId()); + return new ModelAndView("main"/*, model*/); } diff --git a/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java b/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java index 4699536..3036517 100644 --- a/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java +++ b/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java @@ -3,7 +3,8 @@ package org.yacos.web.chairman.controller; public class PersonBean { private int id; - private String name; + private String firstName; + private String lastName; private String login; public String getLogin() { @@ -16,14 +17,6 @@ public class PersonBean { public PersonBean() {} - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - public int getId() { return id; } @@ -32,4 +25,20 @@ public class PersonBean { this.id = id; } + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + } diff --git a/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java b/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java index 272196e..878ed93 100644 --- a/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java +++ b/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java @@ -19,11 +19,16 @@ public class FormConference { private Date dateEndParsed; private int pageNumber; - private String fileType; + private boolean typePDF; + private boolean typeLatec; + private boolean typeWord; + private boolean typeODT; private String sendInfo; private Integer conferenceId; + private String myfilter; + public FormConference () {} public Integer getId() { @@ -66,14 +71,6 @@ public class FormConference { this.pageNumber = pageNumber; } - public String getFileType() { - return fileType; - } - - public void setFileType(String fileType) { - this.fileType = fileType; - } - public String getSendInfo() { return sendInfo; } @@ -177,4 +174,44 @@ public class FormConference { public Integer getConferenceId() { return conferenceId; } + + public String getMyfilter() { + return myfilter; + } + + public void setMyfilter(String myfilter) { + this.myfilter = myfilter; + } + + public boolean isTypePDF() { + return typePDF; + } + + public void setTypePDF(boolean typePDF) { + this.typePDF = typePDF; + } + + public boolean isTypeLatec() { + return typeLatec; + } + + public void setTypeLatec(boolean typeLatec) { + this.typeLatec = typeLatec; + } + + public boolean isTypeWord() { + return typeWord; + } + + public void setTypeWord(boolean typeWord) { + this.typeWord = typeWord; + } + + public boolean isTypeODT() { + return typeODT; + } + + public void setTypeODT(boolean typeODT) { + this.typeODT = typeODT; + } } diff --git a/YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java b/YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java index 61bff32..20982bc 100644 --- a/YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java +++ b/YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java @@ -15,7 +15,7 @@ public class ConferenceValidator implements Validator { public boolean supports(Class commandClass) { return FormConference.class.isAssignableFrom(commandClass); } - + public void validate(Object obj, Errors errors) { validateFirstPage((FormConference) obj, errors); validateSecondPage((FormConference) obj, errors); @@ -26,42 +26,60 @@ public class ConferenceValidator implements Validator { ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", "TITLE_REQUIRED", "A title is required"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "description", "DESCRIPTION_REQUIRED", "A description is required"); } - + public void validateSecondPage(FormConference conference, Errors errors) { ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateStart", "DATE_REQUIRED", "A date is required"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateEnd", "DATE_REQUIRED", "A date is required"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateArticle", "DATE_REQUIRED", "A date is required"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateEvaluation", "DATE_REQUIRED", "A date is required"); - + DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date dateStart = null, dateEnd = null, dateArticle = null, dateEvaluation = null; try { - Date dateStart = format.parse(conference.getDateStart()); + dateStart = format.parse(conference.getDateStart()); conference.setDateStartParsed(dateStart); + // FIXME : bug ici, ca s'affiche même si ca devrait pas } catch (ParseException e) { - errors.reject("dateStart"); + errors.rejectValue("dateStart", "conference.errors.dateStartNonValid"); } try { - Date dateEnd = format.parse(conference.getDateEnd()); - conference.setDateEndParsed(dateEnd); + dateEnd = format.parse(conference.getDateEnd()); + conference.setDateEndParsed(dateEnd); } catch (ParseException e) { - errors.reject("dateEnd"); + errors.reject("dateEnd", "conference.errors.dateStartNonValid"); } try { - Date dateArticle = format.parse(conference.getDateArticle()); + dateArticle = format.parse(conference.getDateArticle()); conference.setDateArticleParsed(dateArticle); } catch (ParseException e) { - errors.reject("dateArticle"); + errors.reject("dateArticle", "conference.errors.dateStartNonValid"); } try { - Date dateEvaluation = format.parse(conference.getDateEvaluation()); + dateEvaluation = format.parse(conference.getDateEvaluation()); conference.setDateEvaluationParsed(dateEvaluation); } catch (ParseException e) { - errors.reject("dateEvaluation"); + errors.reject("dateEvaluation", "conference.errors.dateStartNonValid"); } - } - - public void validateThirdPage(FormConference conference, Errors errors) { + + if (dateStart != null && dateEnd != null) + if (dateStart.after(dateEnd)) + errors.rejectValue("dateStart", "conference.errors.dateStartSuperiorEnd"); + if (dateStart != null && dateArticle != null) + if (!dateStart.before(dateArticle)) + errors.rejectValue("dateArticle", "conference.errors.dateStartSuperiorArticle"); + + if (dateStart != null && dateEvaluation != null) + if (!dateStart.before(dateEvaluation)) + errors.rejectValue("dateEvaluation", "conference.errors.dateStartSuperiorEvaluation"); + + if (dateEvaluation != null && dateArticle != null) + if (!dateArticle.before(dateEvaluation)) + errors.rejectValue("dateArticle", "conference.errors.dateArticleSuperiorEvaluation"); + } + + public void validateThirdPage(FormConference conference, Errors errors) { + } }