package org.xcolab.view.pages.feedback; import org.json.JSONObject; import org.xcolab.client.admin.AdminClient; import org.xcolab.client.admin.enums.ConfigurationAttributeKey; import org.xcolab.client.admin.pojo.ConfigurationAttribute; import java.io.IOException; import java.io.Serializable; public class ContactPreferences implements Serializable { private static final long serialVersionUID = 1L; private final static String RECIPIENTS_PREF = "RECIPIENTS"; private final static String MESSAGE_FORMAT_PREF = "MESSAGE_FORMAT"; private final static String MESSAGE_SUBJECT_PREF = "MESSAGE_SUBJECT"; private final static String EXPAND_LINK_TEXT_PREF = "EXPAND_LINK_TEXT"; private final static String defaultRecipients = "pdeboer@mit.edu,lfi@mit.edu"; private final static String defaultMessageFormat = "USER_NAME (USER_EMAIL) has sent message using contact form\nUSER_MESSAGE"; private final static String defaultMessageSubject = "[CoLab] USER_NAME sent a message using contact form"; private final static String defaultExpandLinkText = "Send feedback message"; private String recipients; private String messageFormat; private String messageSubject; private String expandLinkText; public ContactPreferences() { JSONObject prefs = new JSONObject(ConfigurationAttributeKey.PORTLET_CONTACT_FORM_PREFERENCES.get()); if (prefs.has(MESSAGE_FORMAT_PREF)) { messageFormat = prefs.getString(MESSAGE_FORMAT_PREF); } else { messageFormat = defaultMessageFormat; } if (prefs.has(MESSAGE_SUBJECT_PREF)) { messageSubject = prefs.getString(MESSAGE_SUBJECT_PREF); } else { messageSubject = defaultMessageSubject; } if (prefs.has(EXPAND_LINK_TEXT_PREF)) { expandLinkText = prefs.getString(EXPAND_LINK_TEXT_PREF); } else { expandLinkText = defaultExpandLinkText; } if (prefs.has(RECIPIENTS_PREF)) { recipients = prefs.getString(RECIPIENTS_PREF); } else { recipients = defaultRecipients; } } public static String getRecipientsPref() { return RECIPIENTS_PREF; } public static String getMessageFormatPref() { return MESSAGE_FORMAT_PREF; } public static String getMessageSubjectPref() { return MESSAGE_SUBJECT_PREF; } public void save() throws IOException { JSONObject prefs = new JSONObject(); prefs.put(MESSAGE_FORMAT_PREF, messageFormat); prefs.put(MESSAGE_SUBJECT_PREF, messageSubject); prefs.put(EXPAND_LINK_TEXT_PREF, expandLinkText); prefs.put(RECIPIENTS_PREF, recipients); ConfigurationAttribute configurationAttribute = new ConfigurationAttribute(); configurationAttribute .setName(ConfigurationAttributeKey.PORTLET_CONTACT_FORM_PREFERENCES.name()); configurationAttribute.setStringValue(prefs.toString()); AdminClient.updateConfigurationAttribute(configurationAttribute); } public String getRecipients() { return recipients; } public void setRecipients(String recipients) { this.recipients = recipients; } public String[] getRecipientsArray() { return recipients.split(","); } public String getMessageFormat() { return messageFormat; } public void setMessageFormat(String messageFormat) { this.messageFormat = messageFormat; } public String getMessageSubject() { return messageSubject; } public void setMessageSubject(String messageSubject) { this.messageSubject = messageSubject; } public String getExpandLinkText() { return expandLinkText; } public void setExpandLinkText(String expandLinkText) { this.expandLinkText = expandLinkText; } }