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
+
+
+
+
+ Name
+ Actions
+
+
Person
@@ -123,12 +139,19 @@ function filterUser(el, value) {
-
- Mail:
-
-
-
+
+ Mail: Invite
+
+
+
+
+
+
+ Name
+ Actions
+
+
Person
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) {
+
}
}