/* This file is part of OpenMyEWB. OpenMyEWB is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenMyEWB is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenMyEWB. If not, see <http://www.gnu.org/licenses/>. OpenMyEWB is Copyright 2005-2009 Nicolas Kruchten (nicolas@kruchten.com), Francis Kung, Engineers Without Borders Canada, Michael Trauttmansdorff, Jon Fishbein, David Kadish */ package ca.myewb.frame.forms; import java.util.LinkedList; import ca.myewb.frame.Helpers; import ca.myewb.frame.PostParamWrapper; import ca.myewb.frame.forms.element.Element; import ca.myewb.frame.forms.element.Radio; import ca.myewb.frame.forms.element.Text; import ca.myewb.frame.forms.element.TextArea; import ca.myewb.model.GroupChapterModel; import ca.myewb.model.GroupModel; import ca.myewb.model.UserModel; public class EmailEditForm extends Form { public EmailEditForm(String target, PostParamWrapper requestParams, GroupModel list, UserModel currentUser) throws Exception { super(target, "preview email"); Radio r; Element elem = addText("Subject", "Subject", requestParams.get("Subject"), true); elem.setInstructions("this will be prefixed with \"[" + list.getTotalShortname()+ "]\""); ((Text)elem).setSize(300); GroupChapterModel chapter = currentUser.getChapter(); r = new Radio("Sender", "Send from", requestParams.get("Sender"), true); if (requestParams.get("Sender") == null) r.setValue(""); if(currentUser.isMember(Helpers.getGroup("Exec"), true)) { r.addOption("self", "my email address"); if (chapter!= null && (list.equals(chapter) || ((list.getParent() != null) && list.getParent().equals(chapter)))) { r.addOption("chapter", chapter.getEmail()); } } if (r.getNumOptions() > 1) addToElements(r); else addHidden("Sender", "self", true); elem = addTextArea("Body", "Body", requestParams.get("Body"), true); elem.setInstructionTemplate("formatting"); ((TextArea)elem).makeTwoCols(); r = addRadio("Responses", "Response Type", (requestParams.get("Responses") != null ? requestParams.get("Responses") : "replies"), true); r.addOption("replies", "Replies"); r.addOption("whiteboard", "Whiteboard"); r.setNumAcross(2); elem = addFileChooser("File", "Attach file(s)", requestParams.get("File"), false); elem.setInstructions("no file will sent with the email, but a link will be automatically added to the email footer."); Text tagField = addText("Keywords", "Tags", requestParams.get("Keywords"), true); tagField.setSize(350); tagField.setInstructionTemplate("tags"); } public boolean cleanAndValidate(boolean isClean) { isClean = getElement("Subject").ensureTotalLength(true, 100) && isClean; LinkedList<Character> allowed = new LinkedList<Character>(); allowed.add(new Character(' ')); allowed.add(new Character('-')); allowed.add(new Character(',')); isClean = (getElement("Keywords")).ensureAlphanumeric(allowed, true) && isClean; return isClean; } }