UnsubscribeApp.java

package sk.iway.iwcm.components.dmail;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.Identity;
import sk.iway.iwcm.components.WebjetComponentAbstract;
import sk.iway.iwcm.dmail.jpa.UnsubscribedEntity;
import sk.iway.iwcm.editor.rest.ComponentRequest;
import sk.iway.iwcm.i18n.Prop;
import sk.iway.iwcm.system.annotations.WebjetAppStore;
import sk.iway.iwcm.system.annotations.WebjetComponent;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumn;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditor;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditorAttr;
import sk.iway.iwcm.system.datatable.annotations.DataTableTab;
import sk.iway.iwcm.system.datatable.annotations.DataTableTabs;
import sk.iway.iwcm.users.UsersDB;

@WebjetComponent("sk.iway.iwcm.components.dmail.UnsubscribeApp")
@WebjetAppStore(
    nameKey = "components.dmail.unsubscribe.title",
    descKey = "components.dmail.unsubscribe.desc",
    itemKey = "cmp_dmail",
    variant = "unsubscribe",
    imagePath = "/components/dmail/editoricon.png",
    galleryImages = "/components/dmail/",
    componentPath = "/components/dmail/unsubscribe.jsp"
)
@DataTableTabs(tabs = {
    @DataTableTab(id = "basic", title = "components.universalComponentDialog.title", selected = true),
    @DataTableTab(id = "unsubscribed", title = "components.admin_unsubscribed_email.unsubscribed_email")
})
@Getter
@Setter
public class UnsubscribeApp extends WebjetComponentAbstract {

    @DataTableColumn(
        inputType = DataTableColumnType.TEXT,
        tab = "basic",
        title = "components.dmail.camp.sender_email"
    )
    private String senderEmail;

    @DataTableColumn(
        inputType = DataTableColumnType.TEXT,
        tab = "basic",
        title = "components.dmail.camp.sender_name"
    )
    private String senderName;

    @DataTableColumn(
        inputType = DataTableColumnType.BOOLEAN_TEXT,
        tab = "basic",
        title = "components.dmail.unsubscribe.confirmUnsubscribe"
    )
    private Boolean confirmUnsubscribe;

    @DataTableColumn(
        inputType = DataTableColumnType.QUILL,
        tab = "basic",
        title = "components.dmail.unsubscribe.confirmUnsubscribeText.title",
        editor = @DataTableColumnEditor(
            message = "components.dmail.unsubscribe.confirmUnsubscribeText"
        )
    )
    private String confirmUnsubscribeText;

    @DataTableColumn(
        inputType = DataTableColumnType.DATATABLE,
        tab = "unsubscribed",
        title = " ",
        editor = { @DataTableColumnEditor(
            attr = {
                @DataTableColumnEditorAttr(key = "data-dt-field-dt-url", value = "/admin/rest/dmail/unsubscribed"),
                @DataTableColumnEditorAttr(key = "data-dt-field-dt-columns", value = "sk.iway.iwcm.dmail.jpa.UnsubscribedEntity"),
                @DataTableColumnEditorAttr(key = "data-dt-field-dt-serverSide", value = "true")
            }
        )}
    )
    private List<UnsubscribedEntity> unsubscribedEmails;

    @Override
    public void initAppEditor(ComponentRequest componentRequest, HttpServletRequest request) {
        Identity user = UsersDB.getCurrentUser(request);
        if (user != null) {
            senderEmail = user.getEmail();
            senderName = user.getFullName();
        }
        if (confirmUnsubscribeText == null) {
            confirmUnsubscribeText = "<p>"+Prop.getInstance(request).getText("components.dmail.unsubscribe.confirmUnsubscribeText")+"</p>";
        }
        if (confirmUnsubscribe == null) {
            confirmUnsubscribe = true;
        }
    }

}