Package com.dotmarketing.portlets.workflows.actionlet

Source Code of com.dotmarketing.portlets.workflows.actionlet.CheckURLAccessibilityActionlet

package com.dotmarketing.portlets.workflows.actionlet;

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

import javax.servlet.http.HttpServletRequest;

import com.dotcms.repackage.org.directwebremoting.WebContext;
import com.dotcms.repackage.org.directwebremoting.WebContextFactory;

import com.dotcms.enterprise.LicenseUtil;
import com.dotmarketing.business.APILocator;
import com.dotmarketing.business.web.UserWebAPI;
import com.dotmarketing.business.web.WebAPILocator;
import com.dotmarketing.portlets.contentlet.model.Contentlet;
import com.dotmarketing.portlets.linkchecker.bean.InvalidLink;
import com.dotmarketing.portlets.linkchecker.util.LinkCheckerUtil;
import com.dotmarketing.portlets.workflows.model.WorkflowActionClassParameter;
import com.dotmarketing.portlets.workflows.model.WorkflowActionFailureException;
import com.dotmarketing.portlets.workflows.model.WorkflowActionletParameter;
import com.dotmarketing.portlets.workflows.model.WorkflowProcessor;
import com.dotmarketing.util.Logger;
import com.liferay.portal.language.LanguageUtil;
import com.liferay.portal.model.User;

/**
* Workflow actionlet that call the link checker on the given content fields.
*
* @author  Graziano Aliberti - Engineering Ingegneria Informatica
* @author Jorge Urdaneta - dotCMS
* @date  Feb 28, 2012
*/
public class CheckURLAccessibilityActionlet extends WorkFlowActionlet {

  private static final long serialVersionUID = 5110097144813925204L;
  private static List<WorkflowActionletParameter> paramList = null;
  private UserWebAPI uWebAPI = WebAPILocator.getUserWebAPI();
 
  @Override
  public List<WorkflowActionletParameter> getParameters() {
   
    try{
      if(null==paramList){
        paramList = new ArrayList<WorkflowActionletParameter>();
        paramList.add(new WorkflowActionletParameter("fieldList",
                LanguageUtil.get(APILocator.getUserAPI().getSystemUser(), "checkURL.fieldList"), "", true));
      }
    }catch(Exception e){     
    }
    return paramList;
  }

  @Override
  public String getName() {   
    return "Link Checker";
  }

  @Override
  public String getHowTo() {
    return "This actionlet check the links into the specified fields and reject the content with broken links";
  }

  @Override
  public void executeAction(WorkflowProcessor processor, Map<String, WorkflowActionClassParameter> params) throws WorkflowActionFailureException {
      if(LicenseUtil.getLevel()<200)
            return; // the apis will do nothing anyway
     
        WebContext ctx = WebContextFactory.get();
        HttpServletRequest request = ctx.getHttpServletRequest();
      User user=null;
        try {
            user = uWebAPI.getLoggedInUser(request);
        } catch (Exception exx) {
            throw new WorkflowActionFailureException(exx.getMessage());
        }
    Contentlet con = processor.getContentlet();
       
    List<InvalidLink> httpResponse=null;
        try {
            httpResponse = APILocator.getLinkCheckerAPI().findInvalidLinks(con);
        } catch (Exception e1) {
            Logger.error(this, e1.getMessage(), e1);
            throw new WorkflowActionFailureException(e1.getMessage());
        }
   
    //if there are unreachable URL...
    if(httpResponse.size()>0){
        String msg="";
            try {
                msg = LanguageUtil.get(user, "checkURL.errorBrokenLinks");
            } catch (Exception e) {
               
            }
      throw new WorkflowActionFailureException(LinkCheckerUtil.buildPopupMsgWithLinksList(msg, httpResponse));
    }
  }
}
TOP

Related Classes of com.dotmarketing.portlets.workflows.actionlet.CheckURLAccessibilityActionlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.