Hi @nitinl ,
PFB MVP solution for this.
//validaton property.

//script to validate the CF path
$(window).adaptTo("foundation-registry").register("foundation.validation.validator", {
selector: "[data-foundation-validation='fragmentpath.validation']",
validate: function(el) {
var fragmentPath = el.value;
var message = "";
$.ajax({
url: "/bin/validateFragmentPath.json?fragmentPath="+fragmentPath,
async: false,
success: function(data) {
if(!data.hasOwnProperty('success')){
message = "Invalid content path";
}
}
});
return message;
}
});Servlet call to check if its a valid CF,
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import org.apache.commons.lang3.StringUtils;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.apache.sling.servlets.annotations.SlingServletPaths;
import org.osgi.service.component.annotations.Component;
import com.adobe.cq.dam.cfm.ContentFragment;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@Component(service = {Servlet.class})
@SlingServletPaths(value="/bin/validateFragmentPath.json")
public class CFValidationServlet extends SlingSafeMethodsServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(final SlingHttpServletRequest request,
final SlingHttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json");
String fragmentPath = request.getParameter("fragmentPath");
ObjectMapper mapper = new ObjectMapper();
ObjectNode keyNode = mapper.createObjectNode();
if(StringUtils.isNotEmpty(fragmentPath)) {
ResourceResolver resolver = request.getResourceResolver();
Resource resource = resolver.getResource(fragmentPath);
if(resource != null) {
ContentFragment fragment = resource.adaptTo(ContentFragment.class);
if(fragment != null) {
keyNode.put("success", "valid content fragment");
}
}
}
response.getWriter().print(keyNode.toPrettyString());
}
}