Вопрос

Пользовательский фильтр VS дефолтный фильтр

Сделал пользовательский фильтр, который в зависимости от того какое рабочее место открыто, отображает контрагентов в соответствующих статусах, но при этом не работает дефолтный фильтр. Как это починить?

 

Код

define("AccountSectionV2", [], function() {
	return {
		entitySchemaName: "Account",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
 
 
			getFilters: 	function() {
 
					//	var filters = this.callParent(arguments);
						var filterGroup = new this.Terrasoft.createFilterGroup();
 
				    //	получаем текст названия рабочего места
					 var span = document.getElementById("menu-workplace-button-textEl"); 
        			 var workspacename = span.innerText; 
 
        			// var wsname = this.get("SysWorkplace.Name");
        			 //alert(wsname);
    	      		 if (workspacename==="Compliance")
 
						{
                        var category = "Compliance";
                        filterGroup.add("FilterCategory", this.Terrasoft.createColumnFilterWithParameter(
                                    this.Terrasoft.ComparisonType.EQUAL, "elcOnBoardingClientSts.Name", category));
                        return filterGroup;
						}
 
						else	if (workspacename==="Board")
 
						{
                        var categoryBoard = "Board";
                        filterGroup.add("FilterCategory", this.Terrasoft.createColumnFilterWithParameter(
                                    this.Terrasoft.ComparisonType.EQUAL, "elcOnBoardingClientSts.Name", categoryBoard));
                        return filterGroup;
						}
 
 
						else	if (workspacename==="Compliance Officer")
 
						{
 
                        var categoryComplianceOfficer = "Compliance";
                       // filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.and;
                        filterGroup.add("FilterStatus", this.Terrasoft.createColumnFilterWithParameter(
                    this.Terrasoft.ComparisonType.EQUAL, "elcOnBoardingClientSts.Name", categoryComplianceOfficer));
                    	filterGroup.add("FilterOfacRate", this.Terrasoft.createColumnFilterWithParameter(
                           this.Terrasoft.ComparisonType.NOT_EQUAL, "elcOfacRate", "0"));
                        return filterGroup;
						}
 
						else	if (workspacename==="Lawyers")
 
						{
						var categoryLawyers = "Compliance";
						var TermsAndCond = "0";
                       // filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.and;
                        filterGroup.add("FilterStatus", this.Terrasoft.createColumnFilterWithParameter(
                    		this.Terrasoft.ComparisonType.EQUAL, "elcOnBoardingClientSts.Name", categoryLawyers));
                    	filterGroup.add("FilterConfirm", this.Terrasoft.createColumnFilterWithParameter(
                           this.Terrasoft.ComparisonType.EQUAL, "elcLawyersConfirmTermsAndCond", TermsAndCond));
                        return filterGroup;
						}
 
						/*
						else {
                            var categoryCreated = "Created";
							filterGroup.remove("FilterCategory", this.Terrasoft.createColumnFilterWithParameter(
                                this.Terrasoft.ComparisonType.EQUAL, "elcOnBoardingClientSts.Name", categoryCreated));
							return filterGroup;
						}
 
						return;
						*/
                    }
 
 
		}
	};
});

 

Нравится

4 комментария
Лучший ответ
filters.add("filterGroup", filterGroup);
return filters;

А как он может работать если вы возвращаете filterGroup а filters у вас улетает в никуда по логике вы должны добавить в filters вашу filterGroup и вернуть filters

Григорий Чех,

Можно, пожалуйста, на примере? Я еще тот программист.

filters.add("filterGroup", filterGroup);
return filters;

Григорий Чех,

Да, так работает. Спасибо

Показать все комментарии