diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/ManualMatchPanel.java b/src/main/java/se/su/dsv/scipro/admin/panels/ManualMatchPanel.java index 4731beb5e8..3d2f82356e 100644 --- a/src/main/java/se/su/dsv/scipro/admin/panels/ManualMatchPanel.java +++ b/src/main/java/se/su/dsv/scipro/admin/panels/ManualMatchPanel.java @@ -12,6 +12,7 @@ import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; import org.apache.wicket.spring.injection.annot.SpringBean; +import org.apache.wicket.util.string.Strings; import se.su.dsv.scipro.SciProSession; import se.su.dsv.scipro.admin.pages.match.AdminManageProjectIdeaPage; import se.su.dsv.scipro.data.dataobjects.Employee; @@ -56,16 +57,19 @@ public class ManualMatchPanel extends Panel { add(currentFragment.setOutputMarkupId(true)); } - - private String createNameAndEmail(Employee employee) { + private String createNameAndEmailOutput(Employee employee) { return employee.getNameAsString() + " <" + employee.getEmailAsString()+">"; } + private String createNameAndEmailAutoComplete(Employee employee) { + return employee.getNameAsString() + " <" + employee.getEmailAsString()+">"; + } + private boolean testACInputString(EmployeeAutoComplete autoCompleteObjectField) { return autoCompleteObjectField.getModelObject() == null || autoCompleteObjectField.getInput() == null || autoCompleteObjectField.getInput().isEmpty() || - !autoCompleteObjectField.getInput().equals(createNameAndEmail(autoCompleteObjectField.getModelObject())); + !autoCompleteObjectField.getInput().equals(autoCompleteObjectField.getModelObject().getNameAsString()); } private ConfirmerAjaxSubmitLink createSubmitLink(final IModel<Match> matchModel, final Component feedbackPanel, final Match.Status status, @@ -81,7 +85,7 @@ public class ManualMatchPanel extends Panel { matchModel.getObject().setSupervisor(autoCompleteObjectField.getModelObject() != null ? autoCompleteObjectField.getModelObject():null); matchModel.getObject().setStatus(status); matchDao.changeStatus(SciProSession.get().getUser(), matchModel.getObject(), null); - Session.get().info(createMatchMessage(createNameAndEmail(autoCompleteObjectField.getModelObject()), matchModel.getObject().getProjectIdea().getTitle(), status)); + Session.get().info(createMatchMessage(autoCompleteObjectField.getModelObject(), matchModel.getObject().getProjectIdea().getTitle(), status)); setResponsePage(AdminManageProjectIdeaPage.class); target.addComponent(feedbackPanel); } @@ -197,19 +201,14 @@ public class ManualMatchPanel extends Panel { private static final long serialVersionUID = 7734889540424308421L; @Override public void action(AjaxRequestTarget pTarget, Employee newSelection) { -// these checks have already been performed when action is called -// if (newSelection != null) { -// if (pTarget != null) { - final String declineMessage = createDeclineMessage(newSelection, projectIdea, status); - if(declineMessage != null && !declineMessage.isEmpty()) { - saveButton.setMessageContentHTML(declineMessage); - pTarget.addComponent(saveButton); - } else { - saveButton.setMessageContentHTML(createConfirmationMessage(newSelection, status)); - pTarget.addComponent(saveButton); - } -// } -// } + final String declineMessage = createDeclineMessage(newSelection, projectIdea, status); + if(declineMessage != null && !declineMessage.isEmpty()) { + saveButton.setMessageContentHTML(declineMessage); + pTarget.addComponent(saveButton); + } else { + saveButton.setMessageContentHTML(createConfirmationMessage(newSelection, status)); + pTarget.addComponent(saveButton); + } } }; } @@ -217,20 +216,20 @@ public class ManualMatchPanel extends Panel { /** * * This method is used to return a match message that the employee was matched or suggested to supervise the project idea . - * @param nameAndEmail the name and email of the employee + * @param employee the employee that is confirmed or suggested to supervise * @param projectIdeaTitle the title of the project idea * @param status the status of the match * @return String the match message */ - private String createMatchMessage(final String nameAndEmail, final String projectIdeaTitle, Match.Status status) { + private String createMatchMessage(final Employee employee, final String projectIdeaTitle, Match.Status status) { StringBuilder messageStr = new StringBuilder(); - messageStr.append(nameAndEmail != null ? nameAndEmail : "" ); + messageStr.append(createNameAndEmailOutput(employee)); if(status.equals(Match.Status.CONFIRMED)) { messageStr.append(" was accepted "); } else if (status.equals(Match.Status.PUBLISHED)) { messageStr.append(" was suggested "); } - messageStr.append("as supervisor to The project idea "); + messageStr.append("as supervisor for The project idea "); messageStr.append(projectIdeaTitle != null ? projectIdeaTitle : ""); messageStr.append("."); return messageStr.toString(); @@ -250,7 +249,7 @@ public class ManualMatchPanel extends Panel { StringBuilder stringBuilder = new StringBuilder(); if(declineMessage != null && !declineMessage.isEmpty()) { stringBuilder.append("The project idea has already been rejected by "); - stringBuilder.append(createNameAndEmail(supervisor)); + stringBuilder.append(createNameAndEmailAutoComplete(supervisor)); stringBuilder.append(". The decline message was: '"); stringBuilder.append(declineMessage); if(status.equals(Match.Status.CONFIRMED)) { @@ -280,7 +279,7 @@ public class ManualMatchPanel extends Panel { } else if (status.equals(Match.Status.PUBLISHED)) { stringBuilder.append("suggest "); } - stringBuilder.append(createNameAndEmail(supervisor)); + stringBuilder.append(createNameAndEmailAutoComplete(supervisor)); stringBuilder.append(" as supervisor for the project idea."); return stringBuilder.toString(); } diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/ManualSetReviewerPanel.java b/src/main/java/se/su/dsv/scipro/admin/panels/ManualSetReviewerPanel.java index 2a23cb5f25..c5be6a0840 100644 --- a/src/main/java/se/su/dsv/scipro/admin/panels/ManualSetReviewerPanel.java +++ b/src/main/java/se/su/dsv/scipro/admin/panels/ManualSetReviewerPanel.java @@ -46,16 +46,20 @@ public class ManualSetReviewerPanel extends Panel { add(currentFragment); } - - private String createNameAndEmail(EmployeeAutoComplete autoCompleteObjectField) { - return autoCompleteObjectField.getModelObject().getNameAsString() + " <" + autoCompleteObjectField.getModelObject().getEmailAsString()+">"; + private String createNameAndEmailOutput(Employee employee) { + return employee.getNameAsString() + " <" + employee.getEmailAsString()+">"; } + private String createNameAndEmailAutoComplete(Employee employee) { + return employee.getNameAsString() + " <" + employee.getEmailAsString()+">"; + } + + private boolean testACInputString(EmployeeAutoComplete autoCompleteObjectField) { return autoCompleteObjectField.getModelObject() == null || autoCompleteObjectField.getInput() == null || autoCompleteObjectField.getInput().isEmpty() || - !autoCompleteObjectField.getInput().equals(createNameAndEmail(autoCompleteObjectField)); + !autoCompleteObjectField.getInput().equals(autoCompleteObjectField.getModelObject().getNameAsString()); } private ConfirmerAjaxSubmitLink createSubmitLink(final IModel<ProjectIdea> projectIdeaModel, final Component feedbackPanel, @@ -73,7 +77,7 @@ public class ManualSetReviewerPanel extends Panel { ProjectIdea projectIdea = projectIdeaModel.getObject(); projectIdea.setSuggestedReviewer(autocompleteReviewerField.getModelObject()); projectIdeaDao.save(projectIdea); - Session.get().info(getInfoMessage(projectIdea.getTitle(), createNameAndEmail(autocompleteReviewerField))); + Session.get().info(getInfoMessage(projectIdea.getTitle(), autocompleteReviewerField.getModelObject())); setResponsePage(AdminManageProjectIdeaPage.class); target.addComponent(feedbackPanel); } @@ -81,7 +85,7 @@ public class ManualSetReviewerPanel extends Panel { @Override //Listener method invoked on form submit with errors protected void onError(AjaxRequestTarget target, Form<?> form) { - Session.get().error(getErrorMessage(projectIdeaModel.getObject().getTitle(), autocompleteReviewerField.getModelObject().getNameAsString())); + Session.get().error(getErrorMessage(projectIdeaModel.getObject().getTitle(), autocompleteReviewerField.getModelObject())); super.onError(target, form); setResponsePage(AdminManageProjectIdeaPage.class); target.addComponent(feedbackPanel); // is only activated on "this" @@ -165,13 +169,8 @@ public class ManualSetReviewerPanel extends Panel { @Override public void action(AjaxRequestTarget pTarget, Employee newSelection) { -// these checks have already been performed when action is called -// if (newSelection != null) { -// if (pTarget != null) { - saveButton.setMessageContentHTML(getConfirmMessage(newSelection.getNameAsString(), projectIdea.getTitle())); - pTarget.addComponent(saveButton); -// } -// } + saveButton.setMessageContentHTML(getConfirmMessage(newSelection)); + pTarget.addComponent(saveButton); } }; } @@ -179,31 +178,30 @@ public class ManualSetReviewerPanel extends Panel { /** * * This method is used to return an confirmation message (is shown in a confirmation dialog) - * to the administrator, that the employee really should be suggested as a reviewer for the project idea. - * @param projectIdeaTitle the title of the project idea - * @param reviewerName the name of the suggested reviewer + * to the administrator, that the employee really should be suggested as reviewer for the project idea. + * @param reviewer the suggested reviewer * @return String the confirmation message */ - private String getConfirmMessage(final String reviewerName, final String projectIdeaTitle) { + private String getConfirmMessage(final Employee reviewer) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("Confirm that you want to suggest "); - stringBuilder.append(reviewerName); - stringBuilder.append(" as a reviewer for the project idea."); + stringBuilder.append(createNameAndEmailAutoComplete(reviewer)); + stringBuilder.append(" as reviewer for the project idea."); return stringBuilder.toString(); } /** * - * This method is used to return an information message that the employee was suggested as a reviewer for the project idea. + * This method is used to return an information message that the employee was suggested as reviewer for the project idea. * @param projectIdeaTitle the title of the project idea - * @param reviewerName the name of the suggested reviewer + * @param reviewer the suggested reviewer * @return String the information message */ - private String getInfoMessage(final String projectIdeaTitle, final String reviewerName) { + private String getInfoMessage(final String projectIdeaTitle, final Employee reviewer) { StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(reviewerName); - stringBuilder.append(" was suggested reviewer for the project idea "); + stringBuilder.append(createNameAndEmailOutput(reviewer)); + stringBuilder.append(" was suggested as reviewer for the project idea "); stringBuilder.append(projectIdeaTitle); stringBuilder.append("."); return stringBuilder.toString(); @@ -213,13 +211,13 @@ public class ManualSetReviewerPanel extends Panel { * * This method is used to return an error message which is shown in case of an unforeseen error. * @param projectIdeaTitle the title of the project idea - * @param reviewerName the name of the presumed reviewer + * @param reviewer the presumed reviewer * @return String the error message */ - private String getErrorMessage(String projectIdeaTitle, String reviewerName) { + private String getErrorMessage(final String projectIdeaTitle, final Employee reviewer) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("An error occurred when suggesting "); - stringBuilder.append(reviewerName); + stringBuilder.append(createNameAndEmailAutoComplete(reviewer)); stringBuilder.append(" as reviewer for the project idea "); stringBuilder.append(projectIdeaTitle); stringBuilder.append(".");