/* * $Id: RequestView.java,v 1.12.4.6 2008/04/08 20:12:10 palli Exp $ * * Copyright (C) 2001 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. * */ package is.idega.idegaweb.campus.block.request.presentation; import is.idega.idegaweb.campus.block.request.business.RequestBusiness; import is.idega.idegaweb.campus.presentation.CampusWindow; import com.idega.core.accesscontrol.business.LoginBusinessBean; import com.idega.core.user.data.User; import com.idega.presentation.IWContext; import com.idega.presentation.ui.CheckBox; import com.idega.presentation.ui.DataTable; import com.idega.presentation.ui.DateInput; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.RadioButton; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextArea; import com.idega.presentation.ui.TextInput; import com.idega.presentation.util.Edit; import com.idega.util.IWTimestamp; /** * @author <a href="mail:palli@idega.is">Pall Helgason</a> * @version 1.0 */ public class RequestView extends CampusWindow { protected final static String REQUEST_SEND = "request_send"; protected final static String REQUEST_TYPE = "request_type"; public final static String REQUEST_STREET = "request_street"; public final static String REQUEST_APRT = "request_aprt"; public final static String REQUEST_NAME = "request_name"; public final static String REQUEST_TEL = "request_tel"; public final static String REQUEST_EMAIL = "request_email"; protected final static String REQUEST_TABLE_TITLE = "request_table_title"; protected final static String REQUEST_DATE_OF_CRASH = "request_date_of_crash"; protected final static String REQUEST_COMMENT = "request_comment"; protected final static String REQUEST_TIME = "request_time"; protected final static String REQUEST_DAYTIME = "request_daytime"; protected final static String REQUEST_SPECIAL_TIME = "request_special_time"; protected final static String REQUEST_NO_COMMENT = "request_no_comment"; protected final static String REQUEST_NO_DATE_OF_CRASH = "request_no_date_of_crash"; protected final static String REQUEST_NO_SPECIAL_TIME = "request_no_special_time"; protected final static String REQUEST_REPAIR = "request_repair"; protected final static String REQUEST_COMPUTER = "request_computer"; protected static final String REQUEST_REPORTED = "request_reported_by_phone"; private boolean isAdmin; private boolean isLoggedOn; private User eUser = null; /** * */ public RequestView() { setWidth(650); setHeight(450); setResizable(true); } /** * */ public String getBundleIdentifier() { return (IW_BUNDLE_IDENTIFIER); } /** * */ protected void control(IWContext iwc) { if (isAdmin || isLoggedOn) { if (iwc.isParameterSet(REQUEST_SEND)) { boolean check = doSendRequest(iwc); if (check) { setParentToReload(); close(); } } addMainForm(iwc); } else add(getText(localize("access_denied", "Access denied"))); } /** * */ protected boolean doSendRequest(IWContext iwc) { String comment = iwc.getParameter(REQUEST_COMMENT); String dateOfFailureString = iwc.getParameter(REQUEST_DATE_OF_CRASH); String type = iwc.getParameter(REQUEST_TYPE); if (type.equals(REQUEST_COMPUTER)) type = RequestBusiness.REQUEST_COMPUTER; else type = RequestBusiness.REQUEST_REPAIR; String special = iwc.getParameter(REQUEST_SPECIAL_TIME); boolean reported = iwc.isParameterSet(REQUEST_REPORTED); System.out.println("DateOfFailureString = " + dateOfFailureString); IWTimestamp t = new IWTimestamp(); t = IWTimestamp.RightNow(); boolean insert = RequestBusiness.insertRequest(((Integer) eUser .getPrimaryKey()).intValue(), comment, t.getTimestamp(), type, special,reported); return (insert); } /** * */ protected void addMainForm(IWContext iwc) { Form form = new Form(); add(form); DropdownMenu mnu = new DropdownMenu(REQUEST_TYPE); mnu.addMenuElement(REQUEST_COMPUTER, localize(REQUEST_COMPUTER, "Computer repairs")); mnu.addMenuElement(REQUEST_REPAIR, localize(REQUEST_REPAIR, "General repairs")); mnu.setToSubmit(); Edit.setStyle(mnu); // form.add(mnu); String type = iwc.getParameter(REQUEST_TYPE); if (type == null) type = REQUEST_REPAIR; mnu.setSelectedElement(type); String street = iwc.getParameter(REQUEST_STREET); String aprt = iwc.getParameter(REQUEST_APRT); String name = iwc.getParameter(REQUEST_NAME); String telephone = iwc.getParameter(REQUEST_TEL); String email = iwc.getParameter(REQUEST_EMAIL); DataTable data = new DataTable(); data.setWidth("100%"); data.addTitle(localize(REQUEST_TABLE_TITLE, localize(REQUEST_SEND,"Send request"))); data.addButton(new SubmitButton(REQUEST_SEND, localize(REQUEST_SEND,"Send request"))); form.add(data); int row = 1; data.add(getHeader(localize(REQUEST_TYPE, "Request type")), 1, row); data.add(mnu, 2, row); row++; data.add(getHeader(localize(REQUEST_STREET, "Building")), 1, row); data.add(getText(street), 2, row); row++; data.add(getHeader(localize(REQUEST_APRT, "Apartment")), 1, row); data.add(getText(aprt), 2, row); row++; data.add(getHeader(localize(REQUEST_NAME, "Tenant")), 1, row); data.add(getText(name), 2, row); row++; data.add(getHeader(localize(REQUEST_TEL, "Phone number")), 1, row); data.add(getText(telephone), 2, row); row++; data.add(getHeader(localize(REQUEST_EMAIL, "Email")), 1, row); data.add(getText(email), 2, row); row++; if (type.equals(REQUEST_REPAIR)){ addRepair(data, row,true); } else if (type.equals(REQUEST_COMPUTER)){ addRepair(data, row,false); } form.add(new HiddenInput(REQUEST_STREET, street)); form.add(new HiddenInput(REQUEST_APRT, aprt)); form.add(new HiddenInput(REQUEST_NAME, name)); form.add(new HiddenInput(REQUEST_TEL, telephone)); form.add(new HiddenInput(REQUEST_EMAIL, email)); } /** * */ protected void addRepair(DataTable data, int row, boolean showRadioButtons) { data.add(getHeader(localize(REQUEST_DATE_OF_CRASH, "Failure date")), 1,row); DateInput dateOfCrash = new DateInput(REQUEST_DATE_OF_CRASH); dateOfCrash.setToCurrentDate(); Edit.setStyle(dateOfCrash); data.add(dateOfCrash, 2, row); row++; data.add(getHeader(localize(REQUEST_COMMENT, "Comments")), 1, row); TextArea comment = new TextArea(REQUEST_COMMENT, "", 60, 5); Edit.setStyle(comment); data.add(comment, 2, row); row++; if(showRadioButtons){ RadioButton radioButton = new RadioButton(REQUEST_TIME, REQUEST_DAYTIME); //radioButton.setSelected(); data.add(radioButton, 1, row); data.add(getHeader(localize(REQUEST_DAYTIME,"Repairs may be done during business hours even though I'm not at home.")), 2, row); row++; data.add(new RadioButton(REQUEST_TIME, REQUEST_SPECIAL_TIME), 1, row); } data.add(getHeader(localize(REQUEST_SPECIAL_TIME,"I would like to have the repairs done at this specific date/time: ")),2, row); data.add(new TextInput(REQUEST_SPECIAL_TIME), 2, row); row++; CheckBox reportedByPhone = new CheckBox(REQUEST_REPORTED); data.add(reportedByPhone, 1, row); data.add(getHeader(localize(REQUEST_REPORTED,"Problem already reported by telephone.")),2, row); row++; } /** * */ public void main(IWContext iwc) throws Exception { eUser = iwc.getCurrentUser(); isAdmin = iwc.hasEditPermission(this); isLoggedOn = LoginBusinessBean.isLoggedOn(iwc); control(iwc); } }