Package com.dotmarketing.portlets.structure.ajax

Source Code of com.dotmarketing.portlets.structure.ajax.FieldVariableAjax

package com.dotmarketing.portlets.structure.ajax;

import java.util.Date;
import java.util.LinkedList;
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.dotmarketing.business.APILocator;
import com.dotmarketing.business.web.UserWebAPI;
import com.dotmarketing.business.web.WebAPILocator;
import com.dotmarketing.exception.DotDataException;
import com.dotmarketing.exception.DotRuntimeException;
import com.dotmarketing.exception.DotSecurityException;
import com.dotmarketing.portlets.structure.business.FieldAPI;
import com.dotmarketing.portlets.structure.model.FieldVariable;
import com.dotmarketing.util.RegEX;
import com.dotmarketing.util.UtilMethods;
import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.portal.language.LanguageUtil;
import com.liferay.portal.model.User;

public class FieldVariableAjax {
 
  public List<Map<String, Object>> getFieldVariablesForField(String fieldId) throws Exception {
   
    WebContext ctx = WebContextFactory.get();
    HttpServletRequest req = ctx.getHttpServletRequest();
    UserWebAPI userWebAPI = WebAPILocator.getUserWebAPI();
    User user = userWebAPI.getLoggedInUser(req);
    boolean respectFrontendRoles = userWebAPI.isLoggedToFrontend(req);
    FieldAPI fieldAPI = APILocator.getFieldAPI();
   
    List<Map<String, Object>> resultList = new LinkedList<Map<String,Object>>();
    List<FieldVariable> fieldVars = fieldAPI.getFieldVariablesForField(fieldId, user, respectFrontendRoles);
    for(FieldVariable variable : fieldVars) {
      Map<String, Object> variableMap = variable.getMap();
      User variableLastModifier = userWebAPI.loadUserById(variable.getLastModifierId(), userWebAPI.getSystemUser(), false);
      String lastModifierFullName = "Unknown";
      if(variableLastModifier != null)
        lastModifierFullName = variableLastModifier.getFullName();
      variableMap.put("lastModifierFullName", lastModifierFullName);
      resultList.add(variableMap);
    }
   
    return resultList;
  }
 
  public String saveFieldVariable(String id, String fieldId, String name, String key, String value) throws DotRuntimeException, PortalException,
  SystemException, DotDataException, DotSecurityException {

    WebContext ctx = WebContextFactory.get();
    HttpServletRequest req = ctx.getHttpServletRequest();
    UserWebAPI userWebAPI = WebAPILocator.getUserWebAPI();
    User user = userWebAPI.getLoggedInUser(req);
    boolean respectFrontendRoles = userWebAPI.isLoggedToFrontend(req);

    key = key.trim();
    value = value.trim();
    name = name.trim();
    name = UtilMethods.escapeDoubleQuotes(name);
    value = UtilMethods.escapeDoubleQuotes(value);
 
    if (key.equals("")) {
      return LanguageUtil.get(user, "message.fieldvariables.key.required");
    }
 
    if (RegEX.contains(key, "[^A-Za-z0-9]")) {
      return LanguageUtil.get(user, "message.fieldvariables.exist.error.regex");
    }
 
    FieldAPI fieldAPI = APILocator.getFieldAPI();
 
    List<FieldVariable> variables = fieldAPI.getFieldVariablesForField(fieldId, user, false);
 
    FieldVariable fieldVariable = null;
    for (FieldVariable next : variables) {
      if (next.getKey().equals(key) && !next.getId().equals(id)) {
        return LanguageUtil.get(user, "message.fieldvariables.exist.error.key");
      }
      if(UtilMethods.isSet(id) && next.getId().equals(id)) {
        fieldVariable = next;
        continue;
      }
    }
   
    if(fieldVariable == null) {
      fieldVariable = new FieldVariable();
    }
 
    fieldVariable.setId(id);
    fieldVariable.setFieldId(fieldId);
    fieldVariable.setName(name);
    fieldVariable.setKey(key);
    fieldVariable.setValue(value);
    fieldVariable.setLastModifierId(user.getUserId());
    fieldVariable.setLastModDate(new Date());
    try {
      fieldAPI.saveFieldVariable(fieldVariable, user, respectFrontendRoles);
    } catch (DotSecurityException e) {
      return LanguageUtil.get(user, "message.fieldvariables.permission.error.save");
    }
   
    return null;
  }
 
  public String deleteFieldVariable(String fieldVarId) throws DotDataException, DotSecurityException, DotRuntimeException, PortalException, SystemException {

    WebContext ctx = WebContextFactory.get();
    HttpServletRequest req = ctx.getHttpServletRequest();
    UserWebAPI userWebAPI = WebAPILocator.getUserWebAPI();
    User user = userWebAPI.getLoggedInUser(req);
    boolean respectFrontendRoles = userWebAPI.isLoggedToFrontend(req);

    FieldAPI fieldAPI = APILocator.getFieldAPI();
    FieldVariable fieldVar = fieldAPI.findFieldVariable(fieldVarId, user, respectFrontendRoles);
    fieldAPI.deleteFieldVariable(fieldVar, user, respectFrontendRoles);
   
    return LanguageUtil.get(user, "message.fieldvariables.deleted");
  }

}
TOP

Related Classes of com.dotmarketing.portlets.structure.ajax.FieldVariableAjax

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.