Plugins IBM ICN 3.0.3-在“内容”对话框中为单值属性显示选秀列表的丑陋显示

Plugins IBM ICN 3.0.3-在“内容”对话框中为单值属性显示选秀列表的丑陋显示,plugins,filenet-content-engine,ibm-content-navigator,filenet-cpe,Plugins,Filenet Content Engine,Ibm Content Navigator,Filenet Cpe,给定文档类,条目模板的单值属性与ChoiceList关联。如果唱诗班成员没有“次级”(选择)的话,这很有效 当添加组选项且用户尝试填充属性时,对话框将变丑,并显示如下: 是否有一种方法可以自动展开根选项的树状视图,并删除“无”标签(“法语中的Aucun”)以及唱诗班成员的符号名称(此处模糊) 我必须写一个插件来解决这个问题吗 更新。此处“Aucun”的目的是清空字段 我联系了支持团队,简单地说,不可能“开箱即用”。但我找到了一个解决办法 我编写了一个ResponseFilter,它捕获请求的响

给定文档类,条目模板的单值属性与ChoiceList关联。如果唱诗班成员没有“次级”(选择)的话,这很有效

当添加组选项且用户尝试填充属性时,对话框将变丑,并显示如下:

是否有一种方法可以自动展开根选项的树状视图,并删除“无”标签(“法语中的Aucun”)以及唱诗班成员的符号名称(此处模糊)

我必须写一个插件来解决这个问题吗


更新。此处“Aucun”的目的是清空字段

我联系了支持团队,简单地说,不可能“开箱即用”。但我找到了一个解决办法

我编写了一个ResponseFilter,它捕获请求的响应
/p8/openContentClass
。结果表明,其响应包含ChoiceList值:

 {
     "classes": [{
             "parentClassId": "<PARENTCLASSID>",
             "template_name": "<ENTRYTEMPLATE>",
             /* [...] */
         }
     ],
     /* [...] */
     "criterias": [/* [...] */, {
             "settability": "readWrite",
             "defaultOperator": "EQUAL",
             "minValue": null,
             "uniqueValues": true,
             "orderable": false,
             "choiceList": {
                 "choices":                   /* <----- here */,
                 "displayName": "CL_ToFilter"
             },
             /* [...] */
             "name": "<propertyName>"
         }
     ]
 }

运行3.0.3。我无法将您打印的对话框进行筛选;我使用P8创建了一个文档类、属性,并添加了一个包含组/项的choicelist。然后我创建了一个entrytemplate;我得到的不是弹出窗口,而是一个下拉列表,其中只呈现值,而不呈现组。要么我的复制错误,要么升级到3.0.3可能是你的解决方案?谢谢。您是否将属性设置为单值?我刚刚检查了版本(返回工作),我们还运行了ICN 3.0.3。我确实在P8中将属性设置为单值。对我所做的复制品有什么评论吗?我按照你引用的复制品的步骤做了,我也得到了同样的评论。编辑发给我一封回信,我将在下面引用。
public class ChoiceListValuesResponseFilter extends PluginResponseFilter {
     public String[] getFilteredServices() {
         return new String[] { "/p8/openContentClass"/* "/p8/openItem"*/ };
     }
     public void filter(String serverType, PluginServiceCallbacks callbacks,
             HttpServletRequest request, JSONObject jsonResponse) throws Exception {

         // [...]

         JSONArray jsonProperties =
                 (JSONArray) jsonResponse.get("criterias");
         Iterator it = jsonProperties.iterator();

         while (it.hasNext()) {
             JSONObject jo = (JSONObject) it.next();
             if ("<PROPERTYWITHFILTEREDCL>".equals(jo.get("name"))) {
                 JSONObject choiceListJo = (JSONObject) jo.get("choiceList");
                 // do the processing here
                 break;
             }
         }
     }
    // [...]
}