This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository coselmar. See http://git.codelutin.com/coselmar.git commit 9509ebd5bf231c32e15797d93ff0b49d4d2f171c Author: Yannick Martel <martel@©odelutin.com> Date: Mon Dec 15 11:43:19 2014 +0100 Add phone number on user Add comment on document --- .../src/main/xmi/coselmar-model.properties | 2 ++ .../src/main/xmi/coselmar-model.zargo | Bin 10090 -> 10252 bytes .../fr/ifremer/coselmar/beans/DocumentBean.java | 24 ++++++++++------ .../java/fr/ifremer/coselmar/beans/UserBean.java | 14 +++++++++- .../fr/ifremer/coselmar/beans/UserSearchBean.java | 4 +-- .../coselmar/converter/BeanEntityConverter.java | 5 +++- .../coselmar/services/v1/DocumentsWebService.java | 4 ++- .../coselmar/services/v1/UsersWebService.java | 31 +++++++++++++++------ .../src/main/webapp/views/documents/document.html | 6 +++- .../webapp/views/documents/modalDocumentEdit.html | 15 +++++++++- .../main/webapp/views/documents/newdocument.html | 18 +++++++++--- .../src/main/webapp/views/users/edituser.html | 10 +++++++ coselmar-ui/src/main/webapp/views/users/user.html | 4 +++ 13 files changed, 109 insertions(+), 28 deletions(-) diff --git a/coselmar-persistence/src/main/xmi/coselmar-model.properties b/coselmar-persistence/src/main/xmi/coselmar-model.properties index 1d2db03..3a95bfc 100644 --- a/coselmar-persistence/src/main/xmi/coselmar-model.properties +++ b/coselmar-persistence/src/main/xmi/coselmar-model.properties @@ -28,5 +28,7 @@ model.tagvalue.useEnumerationName=true # Text fr.ifremer.coselmar.persistence.entity.Document.attribute.summary.tagValue.hibernateAttributeType=text +fr.ifremer.coselmar.persistence.entity.Document.attribute.comment.tagValue.hibernateAttributeType=text + fr.ifremer.coselmar.persistence.entity.Question.attribute.summary.tagValue.hibernateAttributeType=text fr.ifremer.coselmar.persistence.entity.Question.attribute.conclusion.tagValue.hibernateAttributeType=text \ No newline at end of file diff --git a/coselmar-persistence/src/main/xmi/coselmar-model.zargo b/coselmar-persistence/src/main/xmi/coselmar-model.zargo index a776669..4b0c5f1 100644 Binary files a/coselmar-persistence/src/main/xmi/coselmar-model.zargo and b/coselmar-persistence/src/main/xmi/coselmar-model.zargo differ diff --git a/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/DocumentBean.java b/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/DocumentBean.java index 6984fff..51e778d 100644 --- a/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/DocumentBean.java +++ b/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/DocumentBean.java @@ -49,6 +49,7 @@ public class DocumentBean implements Serializable { protected String language; protected String summary; protected Date publicationDate; + protected String comment; // Document could be internal file or external link protected boolean withFile; @@ -59,7 +60,8 @@ public class DocumentBean implements Serializable { Date depositDate, Collection<String> keywords, String type, String summary, String language, Date publicationDate, String authors, String license, String copyright, - boolean withFile, String mimeType, String externalUrl) { + boolean withFile, String mimeType, String externalUrl, + String comment) { this.id = id; this.name = name; this.ownerName = ownerName; @@ -81,13 +83,11 @@ public class DocumentBean implements Serializable { this.license = license; this.copyright = copyright; - if (withFile) { - this.withFile = true; - this.mimeType = mimeType; - } else { - this.withFile = false; - this.externalUrl = externalUrl; - } + this.withFile = withFile; + this.mimeType = mimeType; + this.externalUrl = externalUrl; + + this.comment = comment; } public String getId() { @@ -228,4 +228,12 @@ public class DocumentBean implements Serializable { public void setMimeType(String mimeType) { this.mimeType = mimeType; } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } } diff --git a/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserBean.java b/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserBean.java index df5331e..7024c36 100644 --- a/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserBean.java +++ b/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserBean.java @@ -40,9 +40,12 @@ public class UserBean implements Serializable { protected String organization; protected String password; protected String newPassword; + protected String phoneNumber; protected boolean active; - public UserBean(String id, String firstName, String name, String mail, String role, String qualification, String organization, boolean active) { + public UserBean(String id, String firstName, String name, + String mail, String phoneNumber, String role, + String qualification, String organization, boolean active) { this.id = id; this.firstName = firstName; this.name = name; @@ -50,6 +53,7 @@ public class UserBean implements Serializable { this.role = role; this.qualification = qualification; this.organization = organization; + this.phoneNumber = phoneNumber; this.active = active; } @@ -132,4 +136,12 @@ public class UserBean implements Serializable { public void setActive(boolean active) { this.active = active; } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } } diff --git a/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserSearchBean.java b/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserSearchBean.java index 2604033..0c5026d 100644 --- a/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserSearchBean.java +++ b/coselmar-rest/src/main/java/fr/ifremer/coselmar/beans/UserSearchBean.java @@ -38,8 +38,8 @@ public class UserSearchBean extends UserBean { protected List<String> fullTextSearch; protected boolean onlyActive; - public UserSearchBean(String id, String firstName, String name, String mail, String role, String qualification, String organization, boolean active) { - super(id, firstName, name, mail, role, qualification, organization, active); + public UserSearchBean(String id, String firstName, String name, String mail, String phoneNumber, String role, String qualification, String organization, boolean active) { + super(id, firstName, name, mail, phoneNumber, role, qualification, organization, active); } public Integer getLimit() { diff --git a/coselmar-rest/src/main/java/fr/ifremer/coselmar/converter/BeanEntityConverter.java b/coselmar-rest/src/main/java/fr/ifremer/coselmar/converter/BeanEntityConverter.java index faa27c8..7c6848b 100644 --- a/coselmar-rest/src/main/java/fr/ifremer/coselmar/converter/BeanEntityConverter.java +++ b/coselmar-rest/src/main/java/fr/ifremer/coselmar/converter/BeanEntityConverter.java @@ -76,7 +76,8 @@ public class BeanEntityConverter { document.isWithFile(), document.getMimeType(), - document.getExternalUrl() + document.getExternalUrl(), + document.getComment() ); } @@ -85,6 +86,7 @@ public class BeanEntityConverter { user.getFirstname(), user.getName(), user.getMail(), + user.getPhoneNumber(), user.getRole().name(), user.getQualification(), user.getOrganization(), @@ -101,6 +103,7 @@ public class BeanEntityConverter { user.setQualification(userBean.getQualification()); user.setOrganization(userBean.getOrganization()); user.setActive(userBean.isActive()); + user.setPhoneNumber(userBean.getPhoneNumber()); return user; } diff --git a/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/DocumentsWebService.java b/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/DocumentsWebService.java index 0ad800c..b7cafe9 100644 --- a/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/DocumentsWebService.java +++ b/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/DocumentsWebService.java @@ -212,8 +212,10 @@ public class DocumentsWebService extends CoselmarWebServiceSupport { documentEntity.setMimeType(contentType); } else { documentEntity.setWithFile(false); - documentEntity.setExternalUrl(document.getExternalUrl()); } + documentEntity.setExternalUrl(document.getExternalUrl()); + + documentEntity.setComment(document.getComment()); commit(); String lightId = getPersistenceContext().getTopiaIdFactory().getRandomPart(documentEntity.getTopiaId()); diff --git a/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/UsersWebService.java b/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/UsersWebService.java index d9f9f98..a2adbca 100644 --- a/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/UsersWebService.java +++ b/coselmar-rest/src/main/java/fr/ifremer/coselmar/services/v1/UsersWebService.java @@ -139,9 +139,13 @@ public class UsersWebService extends CoselmarWebServiceSupport { userEntity.setFirstname(user.getFirstName()); userEntity.setName(user.getName()); + String mail = getCleanMail(user.getMail()); - checkMailUnicity(mail, null); - userEntity.setMail(mail); + if (StringUtils.isNotBlank(mail)) { + checkMailUniqueness(mail, null); + userEntity.setMail(mail); + } + userEntity.setRole(CoselmarUserRole.valueOf(user.getRole().toUpperCase())); userEntity.setQualification(user.getQualification()); userEntity.setOrganization(user.getOrganization()); @@ -161,12 +165,14 @@ public class UsersWebService extends CoselmarWebServiceSupport { commit(); // send mail to user with password - UserAccountCreatedMail userAccountCreatedMail = new UserAccountCreatedMail(getServicesContext().getLocale()); - userAccountCreatedMail.setUser(user); - userAccountCreatedMail.setPassword(password); - userAccountCreatedMail.setTo(user.getMail()); + if (StringUtils.isNotBlank(mail)) { + UserAccountCreatedMail userAccountCreatedMail = new UserAccountCreatedMail(getServicesContext().getLocale()); + userAccountCreatedMail.setUser(user); + userAccountCreatedMail.setPassword(password); + userAccountCreatedMail.setTo(user.getMail()); - sendMail(userAccountCreatedMail); + sendMail(userAccountCreatedMail); + } } public void modifyUser(UserBean user) throws InvalidCredentialException, UnauthorizedException, InvalidParameterException, TopiaNoResultException { @@ -211,8 +217,10 @@ public class UsersWebService extends CoselmarWebServiceSupport { // start with mail : should be unique String mail = user.getMail(); if (StringUtils.isNotBlank(mail)) { - checkMailUnicity(mail, fullId); + checkMailUniqueness(mail, fullId); coselmarUser.setMail(mail); + } else { + coselmarUser.setMail(null); } String firstName = user.getFirstName(); @@ -245,6 +253,11 @@ public class UsersWebService extends CoselmarWebServiceSupport { coselmarUser.setQualification(qualification); } + String phoneNumber = user.getPhoneNumber(); + if (StringUtils.isNotBlank(phoneNumber)) { + coselmarUser.setPhoneNumber(phoneNumber); + } + String newPassword = user.getNewPassword(); if (StringUtils.isNotBlank(newPassword)) { String salt = getServicesContext().generateSalt(); @@ -325,7 +338,7 @@ public class UsersWebService extends CoselmarWebServiceSupport { * @param userId : the current user#id : this parameter is needed to exclude from the search this user, cause it could already have this mail * @throws InvalidParameterException if the mail is already used. */ - protected void checkMailUnicity(String mail, String userId) throws InvalidParameterException { + protected void checkMailUniqueness(String mail, String userId) throws InvalidParameterException { boolean mailAlreadyUsed; if (StringUtils.isNotBlank(userId)) { diff --git a/coselmar-ui/src/main/webapp/views/documents/document.html b/coselmar-ui/src/main/webapp/views/documents/document.html index c4f4ffd..1ee46da 100644 --- a/coselmar-ui/src/main/webapp/views/documents/document.html +++ b/coselmar-ui/src/main/webapp/views/documents/document.html @@ -83,10 +83,14 @@ <td ng-if="document.withFile">{{document.mimeType}}</td> <td ng-if="!document.withFile">External Link</td> </tr> + <tr> + <td>Comment</td> + <td>{{document.comment}}</td> + </tr> </table> <div class="float-right"> <a href="{{container.baseUrl}}/documents/{{document.id}}/file" class="btn btn-primary" ng-if="document.withFile">Download</a> - <a href="{{document.externalUrl}}" target="_blank" class="btn btn-primary" ng-if="!document.withFile">Open Link</a> + <a href="{{document.externalUrl}}" target="_blank" class="btn btn-primary" ng-if="document.externalUrl">Open Link</a> <a class="btn btn-danger" ng-click="deleteDocument(document.id)">Delete</a> </div> </div> diff --git a/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html b/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html index 80644ba..7db4b43 100644 --- a/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html +++ b/coselmar-ui/src/main/webapp/views/documents/modalDocumentEdit.html @@ -195,7 +195,7 @@ </div> <!-- End Line with Copyright and Licence --> - <!-- End Line with Summary --> + <!-- Line with Summary --> <div class="form-group" ng-class="{'has-error' : documentForm.summary.$invalid && !documentForm.summary.$pristine}"> <label class="col-md-2 control-label">Summary *</label> @@ -208,6 +208,19 @@ class="help-block">A summary is required.</p> </div> </div> + <!-- End Line with Summary --> + + <!-- Line with Comment --> + <div class="form-group" > + <label class="col-md-2 control-label">Comment</label> + + <div class="col-md-10"> + <textarea type="text" class="form-control" name="comment" rows="5" + ng-model="document.comment" /> + + </div> + </div> + <!-- End Line with Comment --> </div> diff --git a/coselmar-ui/src/main/webapp/views/documents/newdocument.html b/coselmar-ui/src/main/webapp/views/documents/newdocument.html index c87c2e0..39a4f0d 100644 --- a/coselmar-ui/src/main/webapp/views/documents/newdocument.html +++ b/coselmar-ui/src/main/webapp/views/documents/newdocument.html @@ -104,7 +104,7 @@ <div class="form-group" ng-class="{'has-error' : documentForm.keywords.$invalid && !documentForm.keywords.$pristine}"> - <label class="col-md-4 control-label">keywords</label> + <label class="col-md-4 control-label">keywords *</label> <div class="col-md-5"> <input type="text" class="form-control" name="keywords" @@ -150,7 +150,7 @@ <div class="form-group" ng-class="{'has-error' : documentForm.authors.$invalid && !documentForm.authors.$pristine}"> - <label class="col-md-4 control-label">Authors</label> + <label class="col-md-4 control-label">Authors *</label> <div class="col-md-5"> <input type="text" class="form-control" name="authors" @@ -163,7 +163,7 @@ <div class="form-group" ng-class="{'has-error' : documentForm.copyright.$invalid && !documentForm.copyright.$pristine}"> - <label class="col-md-4 control-label">Copyright</label> + <label class="col-md-4 control-label">Copyright *</label> <div class="col-md-5"> <input type="text" class="form-control" name="copyright" @@ -194,7 +194,7 @@ <div class="form-group" ng-class="{'has-error' : documentForm.summary.$invalid && !documentForm.summary.$pristine}"> - <label class="col-md-4 control-label">Summary</label> + <label class="col-md-4 control-label">Summary *</label> <div class="col-md-5"> <textarea type="text" class="form-control" name="summary" @@ -205,6 +205,16 @@ </div> </div> + <div class="form-group" > + <label class="col-md-4 control-label">Comment</label> + + <div class="col-md-5"> + <textarea type="text" class="form-control" name="comment" + ng-model="document.comment" /> + + </div> + </div> + <div class="form-group"> <div class="float-right col-md-4"> <input type="submit" value="Submit" class="btn btn-primary" diff --git a/coselmar-ui/src/main/webapp/views/users/edituser.html b/coselmar-ui/src/main/webapp/views/users/edituser.html index 52e49f5..0d66e5a 100644 --- a/coselmar-ui/src/main/webapp/views/users/edituser.html +++ b/coselmar-ui/src/main/webapp/views/users/edituser.html @@ -71,6 +71,16 @@ </div> + <div class="form-group" > + <label class="col-md-4 control-label">Phone Number</label> + + <div class="col-md-5"> + <input type="text" class="form-control" name="phoneNumber" + ng-model="user.phoneNumber" required/> + </div> + + </div> + <div class="form-group"> <label class="col-md-4 control-label">Organization</label> diff --git a/coselmar-ui/src/main/webapp/views/users/user.html b/coselmar-ui/src/main/webapp/views/users/user.html index 8df8457..eaa17f9 100644 --- a/coselmar-ui/src/main/webapp/views/users/user.html +++ b/coselmar-ui/src/main/webapp/views/users/user.html @@ -34,6 +34,10 @@ <td>{{user.mail}}</td> </tr> <tr> + <td>Phone Number</td> + <td>{{user.phoneNumber}}</td> + </tr> + <tr> <td>Qualification</td> <td>{{user.qualification}}</td> </tr> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.