我要求使用頭錘場,方式來限制AEM pathBrowser
花崗岩/ UI /組件/基礎/表格/ pathbrowser時限制文件類型的文件類型。
沒有爲pathfield功能,
正則表達式:/(PNG | JPG | JPEG)$ /, regexText: 「請選擇正確的文件」
這是不是pathBrowser工作, TouchUI字段。
有什麼建議嗎?
我要求使用頭錘場,方式來限制AEM pathBrowser
花崗岩/ UI /組件/基礎/表格/ pathbrowser時限制文件類型的文件類型。
沒有爲pathfield功能,
正則表達式:/(PNG | JPG | JPEG)$ /, regexText: 「請選擇正確的文件」
這是不是pathBrowser工作, TouchUI字段。
有什麼建議嗎?
我已經創建的OSGi包封裝在那裏它限制的文件類型的謂詞類。 java類,
package com.mec.core.utils;
import com.day.cq.commons.predicate.AbstractResourcePredicate;
import org.apache.commons.collections.Predicate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
@Component(label = "Dam Image Predicate",
description = "This predicate is used to display only JPG and PNG files in the pathfield")
@Service(value = Predicate.class)
@Properties({@Property(label = "Predicate Name", name = "predicate.name", value = "damimagepredicate",
propertyPrivate = true)})
public class DamImagePredicate extends AbstractResourcePredicate {
private static final String REP_ACL = "rep:ACL";
private static final String JCR_CONTENT = "jcr:content";
private static final String JCR_PRIMARYTYPE = "jcr:primaryType";
private static final String DAM_ASSET = "dam:Asset";
private static final String PNG = ".png";
private static final String JPG = ".jpg";
private static final String JPEG = ".jpeg";
@Override
public boolean evaluate(Resource resource) {
if(null!= resource){
ValueMap valueMap = resource.getValueMap();
String primaryType = valueMap.get(JCR_PRIMARYTYPE,String.class);
if(null!=primaryType && !primaryType.isEmpty()){
if(primaryType.equalsIgnoreCase(REP_ACL)){
return false;
}
if(resource.getName().equalsIgnoreCase(JCR_CONTENT)){
return false;
}
if(primaryType.equalsIgnoreCase(DAM_ASSET)){
String resourceName = resource.getName();
if(null!=resourceName && !resourceName.isEmpty()){
if(resourceName.lastIndexOf(".")>-1){
String extension = resourceName.substring(resourceName.lastIndexOf("."), resourceName.length());
if(null!=extension && !extension.isEmpty()){
if(extension.equalsIgnoreCase(PNG) || extension.equalsIgnoreCase(JPG) || extension.equalsIgnoreCase(JPEG)){
return true;
}else{
return false;
}
}
}
}
}
}
}
return true;
}
}
您可以在觸摸UI組件中對客戶端進行限制,以限制用戶發佈其他類型的文件。我不會建議爲你的用例創建這樣的東西。 –
客戶端限制與「正則表達式」,也只有經典的用戶界面。我沒有找到任何這樣的TouchUI解決方案。如果有的話,請給我建議。 @RajeshPantula –