saiku中过滤窗口优化及隐藏异常报错

时间:2023-03-09 13:07:28
saiku中过滤窗口优化及隐藏异常报错

问题一:当取消自动查询后,点击该维度应弹出过滤条件窗口,实际无反应,只有执行一次查询后再点击该维度,才能弹出过滤条件窗口

解决办法:打开WorkspaceDropZone.js文件,找到selections方法,其中new DateFilterModal的操作是打开过滤窗口的代码,把创建DateFilterModal的if条件改成

if (objData.level.annotations !== undefined &&
objData.level.annotations !== null &&
(objData.level.annotations.AnalyzerDateFormat !== undefined ||
objData.level.annotations.SaikuDayFormatString !== undefined) &&
(_.has(memberLevel, 'selection') && memberLevel.selection.members.length === 0) &&
_.has(memberLevel, 'selection') === false)

问题二:如何隐藏过滤窗口中特定的级别member

解决办法:打开SelectionsModal.js文件,找到populate方法,其中展示members的代码为:

var selectedHtml = _.template($("#template-selections-options").html())({ options: this.available_members });

在上述代码之前修改一下this.available_members即可,例如隐藏名称为“未知性别”的member:

var UnknownSex;

$(this.available_members).each(function(index,item){
  if(item.name=="未知性别" || item.name=="Unknown sex"){
    UnknownSex = index;
    return false;
  }
})
if(UnknownSex != undefined){
  this.available_members.splice(UnknownSex,1);
}

问题三:如何在页面中隐藏异常报错的提示

解决办法:打开Workspace.js文件,找到cancelled和error方法,注释掉方法内的代码即可

   cancelled: function(args) {
// this.processing.html('<span class="processing_image">&nbsp;&nbsp;</span> <span class="i18n">Canceling Query...</span>').show();
}, no_results: function(args) {
this.processing.html('<span class="i18n">No Results</span>').show();
}, error: function(args) {
// this.processing.html(safe_tags_replace(args.data.error)).show();
},