-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathTAFilters.js
More file actions
98 lines (89 loc) · 3.59 KB
/
TAFilters.js
File metadata and controls
98 lines (89 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/**
* @class TAFilters
* @classdesc Class to work with Text Analytics filters
*
* @constructs TAFilters
* @param {Object} globals - object of global report variables {pageContext: this.pageContext, report: report, user: user, state: state, confirmit: confirmit, log: log}
* @param {TAFolder} folder - Text Analytics folder to build table from
*/
class TAFilters{
private var _globals;
private var _folder: TAFolder;
private var _parameterUtilities: ParameterUtilities;
function TAFilters(globals, folder){
_globals = globals;
_folder = folder;
}
/**
* @memberof TAFilters
* @instance
* @function GetSelectedCategoryFilterExpression
* @param {String} categoriesParameter
* @param {String} subCategoriesParameter
* @param {String} attributesParameter
* @returns {String}
*/
function GetSelectedCategoryFilterExpression(categoriesParameter, subCategoriesParameter, attributesParameter){
var fExpr;
var selectedCategory = TAHelper.GetSelectedCategory(_globals.state, categoriesParameter, subCategoriesParameter, attributesParameter);
fExpr = selectedCategory ?('ANY(' + _folder.GetQuestionId("categories") + ',"'+selectedCategory+'")'):'NOT ISNULL('+_folder.GetQuestionId("overallSentiment")+')';
return fExpr;
}
/**
* @memberof TAFilters
* @instance
* @function GetSentimentFilterExpression
* @param {String} categoriesParameter
* @param {String} subCategoriesParameter
* @param {String} attributesParameter
* @param {String} sentimentParameter
* @returns {String}
*/
function GetSentimentFilterExpression(categoriesParameter, subCategoriesParameter, attributesParameter, sentimentParameter){
var fExpr;
var selectedCategory = TAHelper.GetSelectedCategory(_globals.state, categoriesParameter, subCategoriesParameter, attributesParameter);
var sentimentParameterValue = _globals.state.Parameters.GetString(sentimentParameter);
var sentimentRange = false;
switch( sentimentParameterValue ){
case "pos":
sentimentRange ='"'+Config.SentimentRange.Positive.join('","')+'"';
break;
case "neu":
sentimentRange ='"'+ Config.SentimentRange.Neutral.join('","') +'"';
break;
case "neg":
sentimentRange ='"' + Config.SentimentRange.Negative.join('","')+'"';
break;
}
var questionName = selectedCategory ? (_folder.GetQuestionId("categorysentiment")+"_"+selectedCategory) : _folder.GetQuestionId("overallsentiment");
fExpr = sentimentRange ?('IN(' + questionName + ','+sentimentRange+')') : '';
return fExpr;
}
/**
* @memberof TAFilters
* @instance
* @function GetDateFilterExpression
* @param {String} fromParameter
* @param {String} toParameter
* @returns {String}
*/
function GetDateFilterExpression(fromParameter, toParameter){
var fExpr;
var isFrom = _globals.state.Parameters.IsNull(fromParameter);
var isTo = _globals.state.Parameters.IsNull(toParameter);
var fromExpr;
var toExpr;
var resultArray = [];
if(!isFrom)
{
fromExpr = _folder.GetTimeVariableId() + ' >= PValDate("' +fromParameter+'")';
resultArray.push(fromExpr);
}
if(!isTo){
toExpr = _folder.GetTimeVariableId() + ' <= PValDate("' +toParameter+'")';
resultArray.push(toExpr);
}
fExpr = resultArray.join(" AND ");
return fExpr
}
}