Subversion Repositories SmartDukaan

Rev

Rev 6520 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.creation.controllers;

import in.shop2020.metamodel.core.SpecialPage;
import in.shop2020.metamodel.util.CreationUtils;

import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

/**
 * Action class for special page in CMS. Delete operation is not supported.
 *
 * @author mandeep
 */
@InterceptorRefs({ @InterceptorRef("myDefault"), @InterceptorRef("login") })
@Results({
        @Result(name = "success", type = "redirectAction", params = {
                "actionName", "special-page" }),
        @Result(name = "redirect", location = "${url}", type = "redirect") })
public class SpecialPageController extends BaseController {
    private static final long serialVersionUID = 1L;
    private static Log        log              = LogFactory.getLog(SpecialPageController.class);

    // Special page attributes set by Struts2
    private String            id;
    private String            displayName;
    private String            description;
    private String            primeURL;
    private Long                           pageType;//Solr Search 0, Tag Search 1
    private String            saholicURL;
    private String            searchQuery;
    private String            pageTitle;
    private String            metaKeywords;
    private String            metaDescription;

    // Index page
    public String index() {
        return "index";
    }

    // Display page for a single specialPage
    public String show() {
        return "show";
    }

    /**
     * Handles creation of a new special page
     */
    public String create() throws Exception {
        long id = CreationUtils.getNewSpecialPageId();
        if (displayName == null) {
            addActionError("Display Name cannot be empty");
            return "index";
        }

        SpecialPage specialPage = new SpecialPage(id, displayName);
        specialPage.setDescription(description);
        specialPage.setPrimeURL(primeURL);
        specialPage.setSaholicURL(saholicURL);
        specialPage.setPageTitle(pageTitle);
        specialPage.setMetaDescription(metaDescription);
        specialPage.setMetaKeywords(metaKeywords);
        specialPage.setSearchQuery(searchQuery);
        specialPage.setPageType(pageType);

        log.info(specialPage);
        CreationUtils.storeSpecialPage(specialPage);
        return "index";
    }

    /**
     * Used in index view to display all special pages
     */
    public Map<Long, SpecialPage> getSpecialPages() throws Exception {
        return CreationUtils.getSpecialPages();
    }

    /**
     * Used in UI to display other attributes given special page Id
     */
    public SpecialPage getSpecialPage() throws Exception {
        return CreationUtils.getSpecialPage(Long.parseLong(id));
    }

    public String edit() {
        return "edit";
    }

    public String editNew() {
        return "editNew";
    }

    /**
     * Handles deletion of a special page
     */
    public String destroy() {
        long spacialPageID = Long.parseLong(this.getId());
        CreationUtils.deleteSpecialPage(spacialPageID);
        return "index";
    }

    /**
     * Handles updates done on special page through UI
     */
    public String update() throws Exception {
        SpecialPage specialPage = CreationUtils.getSpecialPage(Long.parseLong(id));
        specialPage.setDisplayName(displayName);
        specialPage.setPageType(pageType);
        specialPage.setDescription(description);
        specialPage.setPrimeURL(primeURL);
        specialPage.setSaholicURL(saholicURL);
        specialPage.setPageTitle(pageTitle);
        specialPage.setMetaDescription(metaDescription);
        specialPage.setMetaKeywords(metaKeywords);
        specialPage.setSearchQuery(searchQuery);

        CreationUtils.storeSpecialPage(specialPage);
        return "index";
    }

    public String getSearchQuery(List<String> searchQuery) {
        return StringUtils.join(searchQuery, ",");
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public String getPrimeURL() {
        return primeURL;
    }

    public void setPrimeURL(String primeURL) {
        this.primeURL = primeURL;
    }

    public String getSaholicURL() {
        return saholicURL;
    }

    public void setSaholicURL(String saholicURL) {
        this.saholicURL = saholicURL;
    }

    public String getSearchQuery() {
        return searchQuery;
    }

    public void setSearchQuery(String searchQuery) {
        this.searchQuery = searchQuery;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getPageTitle() {
        return pageTitle;
    }

    public void setPageTitle(String pageTitle) {
        this.pageTitle = pageTitle;
    }

    public String getMetaKeywords() {
        return metaKeywords;
    }

    public void setMetaKeywords(String metaKeywords) {
        this.metaKeywords = metaKeywords;
    }

    public String getMetaDescription() {
        return metaDescription;
    }

    public void setMetaDescription(String metaDescription) {
        this.metaDescription = metaDescription;
    }

        public void setPageType(Long pageType) {
                this.pageType = pageType;
        }

        public Long getPageType() {
                return pageType;
        }
}